]> Untitled Git - lemmy.git/blobdiff - crates/apub/src/activities/community/add_mod.rs
Add missing mod log entries for federated actions (fixes #1489) (#2198)
[lemmy.git] / crates / apub / src / activities / community / add_mod.rs
index 10baa781c532e741c69d99db655f7d0248cbbbe6..a86c8ac3158c6e5d2b1d73acac5d085598691802 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;
@@ -114,6 +117,22 @@ impl ActivityHandler for AddMod {
         CommunityModerator::join(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: new_mod.id,
+        community_id: community.id,
+        removed: Some(false),
+      };
+      blocking(context.pool(), move |conn| {
+        ModAddCommunity::create(conn, &form)
+      })
+      .await??;
     }
     // TODO: send websocket notification about added mod
     Ok(())