summaryrefslogtreecommitdiff
path: root/app/policies/board_policy.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/policies/board_policy.rb')
-rw-r--r--app/policies/board_policy.rb14
1 files changed, 14 insertions, 0 deletions
diff --git a/app/policies/board_policy.rb b/app/policies/board_policy.rb
new file mode 100644
index 00000000000..46db008421f
--- /dev/null
+++ b/app/policies/board_policy.rb
@@ -0,0 +1,14 @@
+# frozen_string_literal: true
+
+class BoardPolicy < BasePolicy
+ delegate { @subject.parent }
+
+ condition(:is_group_board) { @subject.group_board? }
+
+ rule { is_group_board ? can?(:read_group) : can?(:read_project) }.enable :read_parent
+
+ rule { is_group_board & can?(:read_group) }.policy do
+ enable :read_milestone
+ enable :read_issue
+ end
+end