Connect emoji_reaction block settings and show settings

This commit is contained in:
KMY 2023-09-12 17:24:38 +09:00
parent 4863ac50a0
commit 58137b227c
5 changed files with 36 additions and 32 deletions

View file

@ -22,30 +22,6 @@ class EmojiReactionValidator < ActiveModel::Validator
end
def deny_emoji_reactions?(emoji_reaction)
return false if emoji_reaction.status.account.user.nil?
return deny_from_all?(emoji_reaction) if emoji_reaction.status.account_id == emoji_reaction.account_id
return false if emoji_reaction.status.account.emoji_reaction_policy == :allow
deny_from_all?(emoji_reaction) || non_outside?(emoji_reaction) || non_follower?(emoji_reaction) || non_following?(emoji_reaction) || non_mutual?(emoji_reaction)
end
def deny_from_all?(emoji_reaction)
%i(block block_and_hide).include?(emoji_reaction.status.account.emoji_reaction_policy)
end
def non_following?(emoji_reaction)
emoji_reaction.status.account.emoji_reaction_policy == :followees_only && !emoji_reaction.status.account.following?(emoji_reaction.account)
end
def non_follower?(emoji_reaction)
emoji_reaction.status.account.emoji_reaction_policy == :followers_only && !emoji_reaction.account.following?(emoji_reaction.status.account)
end
def non_outside?(emoji_reaction)
emoji_reaction.status.account.emoji_reaction_policy == :outside_only && !emoji_reaction.account.following?(emoji_reaction.status.account) && !emoji_reaction.status.account.following?(emoji_reaction.account)
end
def non_mutual?(emoji_reaction)
emoji_reaction.status.account.emoji_reaction_policy == :mutuals_only && !emoji_reaction.status.account.mutual?(emoji_reaction.account)
!emoji_reaction.status.account.allow_emoji_reaction?(emoji_reaction.account)
end
end