api.site: check for existing site before creating

This commit is contained in:
eiknat 2020-09-15 21:36:11 -04:00
parent 5c6258390c
commit d0fefca6f9

View file

@ -141,6 +141,12 @@ impl Perform for CreateSite {
) -> Result<SiteResponse, LemmyError> { ) -> Result<SiteResponse, LemmyError> {
let data: &CreateSite = &self; 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?; let user = get_user_from_jwt(&data.auth, context.pool()).await?;
check_slurs(&data.name)?; check_slurs(&data.name)?;
@ -489,6 +495,8 @@ impl Perform for TransferSite {
let data: &TransferSite = &self; let data: &TransferSite = &self;
let mut user = get_user_from_jwt(&data.auth, context.pool()).await?; 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. // TODO add a User_::read_safe() for this.
user.password_encrypted = "".to_string(); user.password_encrypted = "".to_string();
user.private_key = None; user.private_key = None;