Make user settings for status filter accessible from `account` model.

staging
multiple creatures 2019-05-09 12:24:08 -05:00
parent 0782dc3905
commit 5c59d1837f
2 changed files with 18 additions and 11 deletions

View File

@ -28,9 +28,9 @@ class StatusFilter
def filtered_reference?
# filter muted/blocked
return true if account&.user&.setting_hide_replies_blocked && reply_to_blocked?
return true if account&.user&.setting_hide_replies_muted && reply_to_muted?
return true if account&.user&.setting_hide_replies_blocker && reply_to_blocker?
return true if account.user_hide_replies_of_blocked? && reply_to_blocked?
return true if account.user_hide_replies_of_muted? && reply_to_muted?
return true if account.user_hide_replies_of_blocker? && reply_to_blocker?
# kajiht has no filters if status has no mentions
return false if status&.mentions.blank?
@ -42,22 +42,22 @@ class StatusFilter
return false if mentioned_account_ids.include?(account.id)
return true if mentioned_account_ids.any? do |mentioned_account_id|
return true if @preloaded_relations[:muting] && account&.user&.setting_hide_mntions_muted && @preloaded_relations[:muting][mentioned_account_id]
return true if @preloaded_relations[:blocking] && account&.user&.setting_hide_mntions_blocked && @preloaded_relations[:blocking][mentioned_account_id]
return true if @preloaded_relations[:muting] && account.user_hide_mentions_of_muted? && @preloaded_relations[:muting][mentioned_account_id]
return true if @preloaded_relations[:blocking] && account.user_hide_mentions_of_blocked? && @preloaded_relations[:blocking][mentioned_account_id]
if @preloaded_relations[:blocked_by]
return true if account&.user&.setting_hide_mntions_blocker && @preloaded_relations[:blocked_by][mentioned_account_id]
return true if account.user_hide_mentions_of_blocker? && @preloaded_relations[:blocked_by][mentioned_account_id]
else
return true if account&.user&.setting_hide_mntions_blocker && Account.find(mentioned_account_id)&.blocking?(account.id)
return true if account.user_hide_mentions_of_blocker? && Account.find(mentioned_account_id)&.blocking?(account.id)
end
return false unless status.private_visibility? && status.reply?
@preloaded_relations[:following] && account&.user&.setting_hide_mntions_packm8 && !@preloaded_relations[:following][mentioned_account_id]
@preloaded_relations[:following] && account.user_hide_mentions_outside_scope? && !@preloaded_relations[:following][mentioned_account_id]
end
return true if !@preloaded_relations[:following] && account&.user&.setting_hide_mntions_packm8 && status.private_visibility? && status.reply? && (mentioned_account_ids - account.following_ids).any?
return true if !@preloaded_relations[:muting] && account&.user&.setting_hide_mntions_muted && account.muting?(mentioned_account_ids)
return true if !@preloaded_relations[:blocking] && account&.user&.setting_hide_mntions_blocked && account.blocking?(mentioned_account_ids)
return true if !@preloaded_relations[:following] && account.user_hide_mentions_outside_scope? && status.private_visibility? && status.reply? && (mentioned_account_ids - account.following_ids).any?
return true if !@preloaded_relations[:muting] && account.user_hide_mentions_of_muted? && account.muting?(mentioned_account_ids)
return true if !@preloaded_relations[:blocking] && account.user_hide_mentions_of_blocked? && account.blocking?(mentioned_account_ids)
end
def reply_to_blocked?

View File

@ -125,6 +125,13 @@ class Account < ApplicationRecord
:always_local?,
:default_local?,
:no_blabber_blocks?,
:hide_replies_of_muted?,
:hide_replies_of_blocked?,
:hide_replies_of_blocker?,
:hide_mntions_of_muted?,
:hide_mntions_of_blocked?,
:hide_mntions_of_blocker?,
:hide_mntions_of_outside_scope?,
to: :user,
prefix: true,
allow_nil: true