about summary refs log tree commit diff
path: root/app/services/update_account_service.rb
diff options
context:
space:
mode:
authorThibG <thib@sitedethib.com>2019-09-27 21:13:51 +0200
committerEugen Rochko <eugen@zeonfederated.com>2019-09-27 21:13:51 +0200
commit18b451c0e6cf6a927a22084f94b423982de0ee8b (patch)
tree9f2f657b793f499cece2a97dd902c285019dfb61 /app/services/update_account_service.rb
parent2f90a38f44c9c414a2020b2a0031835f3335fea0 (diff)
Change silences to always require approval on follow (#11975)
* Change silenced accounts to require approval on follow

* Also require approval for follows by people explicitly muted by target accounts

* Do not auto-accept silenced or muted accounts when switching from locked to unlocked

* Add `follow_requests_count` to verify_credentials

* Show “Follow requests” menu item if needed even if account is locked

* Add tests

* Correctly reflect that follow requests weren't auto-accepted when local account is silenced

* Accept follow requests from user-muted accounts to avoid leaking mutes
Diffstat (limited to 'app/services/update_account_service.rb')
-rw-r--r--app/services/update_account_service.rb4
1 files changed, 3 insertions, 1 deletions
diff --git a/app/services/update_account_service.rb b/app/services/update_account_service.rb
index 01756a73d..ebf24be37 100644
--- a/app/services/update_account_service.rb
+++ b/app/services/update_account_service.rb
@@ -20,7 +20,9 @@ class UpdateAccountService < BaseService
   private
 
   def authorize_all_follow_requests(account)
-    AuthorizeFollowWorker.push_bulk(FollowRequest.where(target_account: account).select(:account_id, :target_account_id)) do |req|
+    follow_requests = FollowRequest.where(target_account: account)
+    follow_requests = follow_requests.select { |req| !req.account.silenced? }
+    AuthorizeFollowWorker.push_bulk(follow_requests) do |req|
       [req.account_id, req.target_account_id]
     end
   end