summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhttp://jneen.net/ <jneen@jneen.net>2017-07-11 10:10:39 -0700
committerhttp://jneen.net/ <jneen@jneen.net>2017-07-11 10:33:13 -0700
commit4a4a190d06076f86d1c9fa122b215fbcf8d464f3 (patch)
tree15d2b8443b2f5a7c9be61f4673df584d0445b218
parent464d83b29fcf3331d4035c7f0e5f81564aa30091 (diff)
downloadgitlab-ce-4a4a190d06076f86d1c9fa122b215fbcf8d464f3.tar.gz
prevent users who have opted out from :receive_notifications
-rw-r--r--app/policies/global_policy.rb8
1 files changed, 8 insertions, 0 deletions
diff --git a/app/policies/global_policy.rb b/app/policies/global_policy.rb
index 8ed5c470fc2..65af71321ad 100644
--- a/app/policies/global_policy.rb
+++ b/app/policies/global_policy.rb
@@ -20,6 +20,12 @@ class GlobalPolicy < BasePolicy
prevent :create_group
end
+ desc "User has globally disabled notifications"
+ with_options scope: :user
+ condition(:notifications_disabled) do
+ @user&.global_notification_setting.level.to_s == 'disabled'
+ end
+
rule { default }.policy do
enable :log_in
enable :access_api
@@ -36,6 +42,8 @@ class GlobalPolicy < BasePolicy
prevent :use_quick_actions
end
+ rule { notifications_disabled }.prevent :receive_notifications
+
rule { can_create_group }.policy do
enable :create_group
end