diff options
Diffstat (limited to 'app/policies')
-rw-r--r-- | app/policies/status_policy.rb | 39 |
1 files changed, 9 insertions, 30 deletions
diff --git a/app/policies/status_policy.rb b/app/policies/status_policy.rb index 082c27f8e..6d1584ee8 100644 --- a/app/policies/status_policy.rb +++ b/app/policies/status_policy.rb @@ -12,7 +12,7 @@ class StatusPolicy < ApplicationPolicy end def show? - return false if local_only? && (current_account.nil? || !current_account.local?) + return false if local_only? && !current_account&.local? return false unless published? || owned? if requires_mention? @@ -72,12 +72,6 @@ class StatusPolicy < ApplicationPolicy author.domain_blocking?(current_account.domain) end - def parent_author_blocking_domain? - return false if current_account.nil? || current_account.domain.nil? || parent_author.nil? - - parent_author.domain_blocking?(current_account.domain) - end - def conversation_author_blocking_domain? return false if current_account.nil? || current_account.domain.nil? || conversation_owner.nil? @@ -96,12 +90,6 @@ class StatusPolicy < ApplicationPolicy @preloaded_relations[:blocked_by] ? @preloaded_relations[:blocked_by][author.id] : author.blocking?(current_account) end - def parent_author_blocking? - return parent_author&.require_auth? if current_account.nil? || parent_author.nil? - - @preloaded_relations[:blocked_by] ? @preloaded_relations[:blocked_by][parent_author.id] : parent_author.blocking?(current_account) - end - def conversation_author_blocking? return public_conversation? if conversation_owner.nil? @@ -109,10 +97,10 @@ class StatusPolicy < ApplicationPolicy end def blocked_by_owners? - return (author_blocking? || author_blocking_domain?) if conversation_owner&.id == author.id && parent_author&.id == author.id - return true if conversation_author_blocking? || parent_author_blocking? || author_blocking? + return author_blocking? || author_blocking_domain? if conversation_owner&.id == author.id + return true if conversation_author_blocking? || author_blocking? - conversation_author_blocking_domain? || parent_author_blocking_domain? || author_blocking_domain? + conversation_author_blocking_domain? || author_blocking_domain? end def following_author? @@ -121,13 +109,6 @@ class StatusPolicy < ApplicationPolicy @preloaded_relations[:following] ? @preloaded_relations[:following][author.id] : current_account.following?(author) end - def following_parent_author? - return false if current_account.nil? - return true if parent_author.nil? - - @preloaded_relations[:following] ? @preloaded_relations[:following][parent_author.id] : current_account.following?(parent_author) - end - def following_conversation_owner? return false if current_account.nil? return public_conversation? if conversation_owner.nil? @@ -136,19 +117,15 @@ class StatusPolicy < ApplicationPolicy end def following_owners? - return following_author? if conversation_owner&.id == author.id && parent_author&.id == author.id + return following_author? if conversation_owner&.id == author.id - following_conversation_owner? && following_parent_author? && following_author? + following_conversation_owner? && following_author? end def author @author ||= record.account end - def parent_author - @parent_author ||= record.in_reply_to_account - end - def conversation_owner @conversation_owner ||= record.conversation&.account end @@ -162,7 +139,9 @@ class StatusPolicy < ApplicationPolicy end def public_conversation? - @public_conversation ||= record.conversation&.public? || false + return @public_conversation if defined?(@public_conversation) + + @public_conversation = record.conversation&.public? || false end def visibility_for_remote_domain |