about summary refs log tree commit diff
path: root/app/services/notify_service.rb
diff options
context:
space:
mode:
authorEugen Rochko <eugen@zeonfederated.com>2018-10-30 15:02:55 +0100
committerGitHub <noreply@github.com>2018-10-30 15:02:55 +0100
commit47b8d195e6ea5bc5f3cd4fe3a5be0b25ec322f10 (patch)
treeae5facd568535195a881605ed6294a93a9008130 /app/services/notify_service.rb
parenta03d5066265c9555ea2e42cf4bb06edc7439e50c (diff)
Always let through notifications from staff (#9152)
* Always let through notifications from staff

Follow-up to #8993

* Let messages from staff through, but no other notifications
Diffstat (limited to 'app/services/notify_service.rb')
-rw-r--r--app/services/notify_service.rb10
1 files changed, 8 insertions, 2 deletions
diff --git a/app/services/notify_service.rb b/app/services/notify_service.rb
index a8b7bb30b..b80ceef03 100644
--- a/app/services/notify_service.rb
+++ b/app/services/notify_service.rb
@@ -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)