summaryrefslogtreecommitdiff
path: root/app/policies
diff options
context:
space:
mode:
Diffstat (limited to 'app/policies')
-rw-r--r--app/policies/base_policy.rb4
-rw-r--r--app/policies/global_policy.rb7
2 files changed, 9 insertions, 2 deletions
diff --git a/app/policies/base_policy.rb b/app/policies/base_policy.rb
index 12f60d8f76e..5a5b99c81c8 100644
--- a/app/policies/base_policy.rb
+++ b/app/policies/base_policy.rb
@@ -4,6 +4,8 @@ class BasePolicy
end
def self.class_for(subject)
+ return GlobalPolicy if subject.nil?
+
subject.class.ancestors.each do |klass|
next unless klass.name
@@ -59,8 +61,6 @@ class BasePolicy
private
def collect_rules(&b)
- return Set.new if @subject.nil?
-
@can = Set.new
@cannot = Set.new
yield
diff --git a/app/policies/global_policy.rb b/app/policies/global_policy.rb
new file mode 100644
index 00000000000..94a2906444a
--- /dev/null
+++ b/app/policies/global_policy.rb
@@ -0,0 +1,7 @@
+class GlobalPolicy < BasePolicy
+ def rules
+ return unless @user
+ can! :create_group if @user.can_create_group
+ can! :read_users_list
+ end
+end