about summary refs log tree commit diff
path: root/app/policies/status_policy.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/policies/status_policy.rb')
-rw-r--r--app/policies/status_policy.rb39
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