diff --git a/app/policies/base_policy.rb b/app/policies/base_policy.rb
index 12f60d8f76efd74e5329ab3e3120b0ab753f24af..5a5b99c81c80ffe39cbe9a3434335177440e6e23 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 0000000000000000000000000000000000000000..94a2906444aa867233374acdf9b8b4a2b53787a7
--- /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