]> Untitled Git - lemmy.git/blobdiff - crates/apub/src/activities/community/remove_mod.rs
Add missing mod log entries for federated actions (fixes #1489) (#2198)
[lemmy.git] / crates / apub / src / activities / community / remove_mod.rs
index e404df04d53b0816a48399f2e4d874506d3dd6ce..7e43fcbf7b48198ed4699322d169ba9028264760 100644 (file)
@@ -25,8 +25,11 @@ use lemmy_apub_lib::{
   traits::{ActivityHandler, ActorType},
 };
 use lemmy_db_schema::{
-  source::community::{CommunityModerator, CommunityModeratorForm},
-  traits::Joinable,
+  source::{
+    community::{CommunityModerator, CommunityModeratorForm},
+    moderator::{ModAddCommunity, ModAddCommunityForm},
+  },
+  traits::{Crud, Joinable},
 };
 use lemmy_utils::LemmyError;
 use lemmy_websocket::LemmyContext;
@@ -106,6 +109,23 @@ impl ActivityHandler for RemoveMod {
       CommunityModerator::leave(conn, &form)
     })
     .await??;
+
+    // write mod log
+    let actor = self
+      .actor
+      .dereference(context, context.client(), request_counter)
+      .await?;
+    let form = ModAddCommunityForm {
+      mod_person_id: actor.id,
+      other_person_id: remove_mod.id,
+      community_id: community.id,
+      removed: Some(true),
+    };
+    blocking(context.pool(), move |conn| {
+      ModAddCommunity::create(conn, &form)
+    })
+    .await??;
+
     // TODO: send websocket notification about removed mod
     Ok(())
   }