From: Wyatt Smith Date: Thu, 15 Jun 2023 09:35:09 +0000 (-0700) Subject: Prevent making an instance private if federation is enabled. (#3074) X-Git-Url: http://these/git/%7B%60%24%7BwebArchiveUrl%7D/%22%7B%7D/%22https:/nerdica.net/%7Brss%7D?a=commitdiff_plain;h=744153eee60e7a50b2a84144e0562a44915ad91a;p=lemmy.git Prevent making an instance private if federation is enabled. (#3074) * Prevent making an instance private if federation is enabled. * Added case where federation is enabled, check if the alternative setting is changed * Merged the error messages for private instance/federation. --------- Co-authored-by: Wyatt Smith --- diff --git a/crates/api_crud/src/site/update.rs b/crates/api_crud/src/site/update.rs index b3e86575..ac1544ff 100644 --- a/crates/api_crud/src/site/update.rs +++ b/crates/api_crud/src/site/update.rs @@ -76,6 +76,19 @@ impl PerformCrud for EditSite { } } + let enabled_private_instance_with_federation = data.private_instance == Some(true) + && data + .federation_enabled + .unwrap_or(local_site.federation_enabled); + let enabled_federation_with_private_instance = data.federation_enabled == Some(true) + && data.private_instance.unwrap_or(local_site.private_instance); + + if enabled_private_instance_with_federation || enabled_federation_with_private_instance { + return Err(LemmyError::from_message( + "cant_enable_private_instance_and_federation_together", + )); + } + if let Some(discussion_languages) = data.discussion_languages.clone() { SiteLanguage::update(context.pool(), discussion_languages.clone(), &site).await?; }