From 744153eee60e7a50b2a84144e0562a44915ad91a Mon Sep 17 00:00:00 2001 From: Wyatt Smith Date: Thu, 15 Jun 2023 02:35:09 -0700 Subject: [PATCH] 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 --- crates/api_crud/src/site/update.rs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/crates/api_crud/src/site/update.rs b/crates/api_crud/src/site/update.rs index b3e865759..ac1544ffc 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?; }