]> Untitled Git - lemmy.git/commitdiff
api.site: check for existing site before creating
authoreiknat <eiknat@protonmail.com>
Wed, 16 Sep 2020 01:36:11 +0000 (21:36 -0400)
committereiknat <eiknat@protonmail.com>
Wed, 16 Sep 2020 01:59:59 +0000 (21:59 -0400)
src/api/site.rs

index 727078e273d57ee7a5c6035a0b2ca4374adf0196..1d17822e2f36f525e004a116c2ccf668d141a5ed 100644 (file)
@@ -141,6 +141,12 @@ impl Perform for CreateSite {
   ) -> Result<SiteResponse, LemmyError> {
     let data: &CreateSite = &self;
 
+    match blocking(context.pool(), move |conn| { Site::read(conn, 1)}).await?
+    {
+      Ok(_site) => return Err(APIError::err("site_already_exists").into()),
+      Err(_e) => (),
+    };
+
     let user = get_user_from_jwt(&data.auth, context.pool()).await?;
 
     check_slurs(&data.name)?;
@@ -489,6 +495,8 @@ impl Perform for TransferSite {
     let data: &TransferSite = &self;
     let mut user = get_user_from_jwt(&data.auth, context.pool()).await?;
 
+    is_admin(context.pool(), user.id).await?;
+
     // TODO add a User_::read_safe() for this.
     user.password_encrypted = "".to_string();
     user.private_key = None;