2
0

Add server-side support for handling posts with a quote policy allowing followers to quote (#36127)

This commit is contained in:
Claire
2025-09-15 17:03:44 +02:00
committed by GitHub
parent f5591346cc
commit e4bb0fc43a
5 changed files with 17 additions and 5 deletions

View File

@@ -7,7 +7,7 @@ module Status::InteractionPolicyConcern
unsupported_policy: (1 << 0),
public: (1 << 1),
followers: (1 << 2),
followed: (1 << 3),
following: (1 << 3),
}.freeze
included do
@@ -30,6 +30,7 @@ module Status::InteractionPolicyConcern
return :denied if other_account.nil? || direct_visibility?
following_author = nil
followed_by_author = nil
# Post author is always allowed to quote themselves
return :automatic if account_id == other_account.id
@@ -44,6 +45,11 @@ module Status::InteractionPolicyConcern
return :automatic if following_author
end
if automatic_policy.anybits?(QUOTE_APPROVAL_POLICY_FLAGS[:following])
followed_by_author = account.following?(other_account) if followed_by_author.nil?
return :automatic if followed_by_author
end
# We don't know we are allowed by the automatic policy, considering the manual one
return :manual if manual_policy.anybits?(QUOTE_APPROVAL_POLICY_FLAGS[:public])
@@ -52,6 +58,11 @@ module Status::InteractionPolicyConcern
return :manual if following_author
end
if manual_policy.anybits?(QUOTE_APPROVAL_POLICY_FLAGS[:following])
followed_by_author = account.following?(other_account) if followed_by_author.nil?
return :manual if followed_by_author
end
return :unknown if (automatic_policy | manual_policy).anybits?(QUOTE_APPROVAL_POLICY_FLAGS[:unsupported_policy])
:denied