]> cat aescling's git repositories - mastodon.git/commitdiff
Always let through notifications from staff (#9152)
authorEugen Rochko <eugen@zeonfederated.com>
Tue, 30 Oct 2018 14:02:55 +0000 (15:02 +0100)
committerGitHub <noreply@github.com>
Tue, 30 Oct 2018 14:02:55 +0000 (15:02 +0100)
* Always let through notifications from staff

Follow-up to #8993

* Let messages from staff through, but no other notifications

app/services/notify_service.rb

index a8b7bb30bae1796d140c0f59a0a47e33d2d89873..b80ceef03c2428270ee14a29aebc28773a8938d3 100644 (file)
@@ -51,8 +51,12 @@ class NotifyService < BaseService
     @recipient.user.settings.interactions['must_be_following'] && !following_sender?
   end
 
+  def message?
+    @notification.type == :mention
+  end
+
   def direct_message?
-    @notification.type == :mention && @notification.target_status.direct_visibility?
+    message? && @notification.target_status.direct_visibility?
   end
 
   def response_to_recipient?
@@ -66,7 +70,6 @@ class NotifyService < BaseService
   def optional_non_following_and_direct?
     direct_message? &&
       @recipient.user.settings.interactions['must_be_following_dm'] &&
-      !from_staff? &&
       !following_sender? &&
       !response_to_recipient?
   end
@@ -86,6 +89,9 @@ class NotifyService < BaseService
   def blocked?
     blocked   = @recipient.suspended?                            # Skip if the recipient account is suspended anyway
     blocked ||= from_self?                                       # Skip for interactions with self
+
+    return blocked if message? && from_staff?
+
     blocked ||= domain_blocking?                                 # Skip for domain blocked accounts
     blocked ||= @recipient.blocking?(@notification.from_account) # Skip for blocked accounts
     blocked ||= @recipient.muting_notifications?(@notification.from_account)