]> Untitled Git - lemmy.git/blobdiff - crates/api_crud/src/site/create.rs
Add Modlog Filters (#2313)
[lemmy.git] / crates / api_crud / src / site / create.rs
index a38f211d8fe5640fe5a0c2428367e5e6178dd49a..c61e3feae2873cf7ee18d5b0156415ad7f7662b0 100644 (file)
@@ -1,29 +1,22 @@
 use crate::PerformCrud;
+use activitypub_federation::core::signatures::generate_actor_keypair;
 use actix_web::web::Data;
 use lemmy_api_common::{
-  blocking,
-  check_image_has_local_domain,
-  get_local_user_view_from_jwt,
-  is_admin,
-  site::*,
-  site_description_length_check,
+  site::{CreateSite, SiteResponse},
+  utils::{blocking, get_local_user_view_from_jwt, is_admin, site_description_length_check},
 };
 use lemmy_apub::generate_site_inbox_url;
 use lemmy_db_schema::{
-  diesel_option_overwrite,
-  diesel_option_overwrite_to_url,
-  naive_now,
   newtypes::DbUrl,
   source::site::{Site, SiteForm},
   traits::Crud,
+  utils::{diesel_option_overwrite, diesel_option_overwrite_to_url, naive_now},
 };
-use lemmy_db_views::site_view::SiteView;
+use lemmy_db_views::structs::SiteView;
 use lemmy_utils::{
-  apub::generate_actor_keypair,
-  settings::structs::Settings,
+  error::LemmyError,
   utils::{check_slurs, check_slurs_opt},
   ConnectionId,
-  LemmyError,
 };
 use lemmy_websocket::LemmyContext;
 use url::Url;
@@ -48,24 +41,22 @@ impl PerformCrud for CreateSite {
     let local_user_view =
       get_local_user_view_from_jwt(&data.auth, context.pool(), context.secret()).await?;
 
+    let sidebar = diesel_option_overwrite(&data.sidebar);
+    let description = diesel_option_overwrite(&data.description);
+    let icon = diesel_option_overwrite_to_url(&data.icon)?;
+    let banner = diesel_option_overwrite_to_url(&data.banner)?;
+
     check_slurs(&data.name, &context.settings().slur_regex())?;
     check_slurs_opt(&data.description, &context.settings().slur_regex())?;
-    check_image_has_local_domain(&data.icon)?;
-    check_image_has_local_domain(&data.banner)?;
 
     // Make sure user is an admin
     is_admin(&local_user_view)?;
 
-    let sidebar = diesel_option_overwrite(&data.sidebar);
-    let description = diesel_option_overwrite(&data.description);
-    let icon = diesel_option_overwrite_to_url(&data.icon)?;
-    let banner = diesel_option_overwrite_to_url(&data.banner)?;
-
     if let Some(Some(desc)) = &description {
       site_description_length_check(desc)?;
     }
 
-    let actor_id: DbUrl = Url::parse(&Settings::get().get_protocol_and_hostname())?.into();
+    let actor_id: DbUrl = Url::parse(&context.settings().get_protocol_and_hostname())?.into();
     let inbox_url = Some(generate_site_inbox_url(&actor_id)?);
     let keypair = generate_actor_keypair()?;
     let site_form = SiteForm {
@@ -84,6 +75,8 @@ impl PerformCrud for CreateSite {
       private_key: Some(Some(keypair.private_key)),
       public_key: Some(keypair.public_key),
       default_theme: data.default_theme.clone(),
+      default_post_listing_type: data.default_post_listing_type.clone(),
+      hide_modlog_mod_names: data.hide_modlog_mod_names,
       ..SiteForm::default()
     };