From d0fefca6f98c1b6b055a0c855823e913353af4a5 Mon Sep 17 00:00:00 2001 From: eiknat Date: Tue, 15 Sep 2020 21:36:11 -0400 Subject: [PATCH] api.site: check for existing site before creating --- src/api/site.rs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/api/site.rs b/src/api/site.rs index 727078e27..1d17822e2 100644 --- a/src/api/site.rs +++ b/src/api/site.rs @@ -141,6 +141,12 @@ impl Perform for CreateSite { ) -> Result { 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;