summaryrefslogtreecommitdiff
path: root/app/policies
diff options
context:
space:
mode:
Diffstat (limited to 'app/policies')
-rw-r--r--app/policies/project_policy.rb18
-rw-r--r--app/policies/project_policy/class_methods.rb19
2 files changed, 21 insertions, 16 deletions
diff --git a/app/policies/project_policy.rb b/app/policies/project_policy.rb
index 91dd89a8de1..b4970b605ca 100644
--- a/app/policies/project_policy.rb
+++ b/app/policies/project_policy.rb
@@ -1,4 +1,6 @@
class ProjectPolicy < BasePolicy
+ extend ClassMethods
+
READONLY_FEATURES_WHEN_ARCHIVED = %i[
issue
list
@@ -20,22 +22,6 @@ class ProjectPolicy < BasePolicy
cluster
].freeze
- def self.create_read_update_admin_destroy(name)
- [
- :"read_#{name}",
- *create_update_admin_destroy(name)
- ]
- end
-
- def self.create_update_admin_destroy(name)
- [
- :"create_#{name}",
- :"update_#{name}",
- :"admin_#{name}",
- :"destroy_#{name}"
- ]
- end
-
desc "User is a project owner"
condition :owner do
(project.owner.present? && project.owner == @user) ||
diff --git a/app/policies/project_policy/class_methods.rb b/app/policies/project_policy/class_methods.rb
new file mode 100644
index 00000000000..60e5aba00ba
--- /dev/null
+++ b/app/policies/project_policy/class_methods.rb
@@ -0,0 +1,19 @@
+class ProjectPolicy
+ module ClassMethods
+ def create_read_update_admin_destroy(name)
+ [
+ :"read_#{name}",
+ *create_update_admin_destroy(name)
+ ]
+ end
+
+ def create_update_admin_destroy(name)
+ [
+ :"create_#{name}",
+ :"update_#{name}",
+ :"admin_#{name}",
+ :"destroy_#{name}"
+ ]
+ end
+ end
+end