X-Git-Url: http://these/git/?a=blobdiff_plain;f=crates%2Fapub%2Fsrc%2Factivities%2Fvoting%2Fvote.rs;h=81bed456f80166f082ef9d1ecc01330c7e705a46;hb=HEAD;hp=7f36ed4710c722ae6dc9489365a45827ff12dc9d;hpb=6f513793cbd8e7427812638335b55dbb0547ffec;p=lemmy.git diff --git a/crates/apub/src/activities/voting/vote.rs b/crates/apub/src/activities/voting/vote.rs index 7f36ed47..81bed456 100644 --- a/crates/apub/src/activities/voting/vote.rs +++ b/crates/apub/src/activities/voting/vote.rs @@ -1,10 +1,9 @@ use crate::{ activities::{ - generate_activity_id, - verify_person_in_community, + generate_activity_id, verify_person_in_community, voting::{vote_comment, vote_post}, }, - insert_activity, + insert_received_activity, objects::{community::ApubCommunity, person::ApubPerson}, protocol::{ activities::voting::vote::{Vote, VoteType}, @@ -56,13 +55,18 @@ impl ActivityHandler for Vote { #[tracing::instrument(skip_all)] async fn verify(&self, context: &Data) -> Result<(), LemmyError> { + insert_received_activity(&self.id, context).await?; let community = self.community(context).await?; verify_person_in_community(&self.actor, &community, context).await?; - let enable_downvotes = LocalSite::read(context.pool()) + let enable_downvotes = LocalSite::read(&mut context.pool()) .await .map(|l| l.enable_downvotes) .unwrap_or(true); - if self.kind == VoteType::Dislike && !enable_downvotes { + let enable_federated_downvotes = LocalSite::read(&mut context.pool()) + .await + .map(|l| l.enable_federated_downvotes) + .unwrap_or(true); + if self.kind == VoteType::Dislike && (!enable_downvotes || !enable_federated_downvotes) { return Err(anyhow!("Downvotes disabled").into()); } Ok(()) @@ -70,7 +74,6 @@ impl ActivityHandler for Vote { #[tracing::instrument(skip_all)] async fn receive(self, context: &Data) -> Result<(), LemmyError> { - insert_activity(&self.id, &self, false, true, context).await?; let actor = self.actor.dereference(context).await?; let object = self.object.dereference(context).await?; match object {