summaryrefslogtreecommitdiff
path: root/app/policies/ci/pipeline_schedule_policy.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/policies/ci/pipeline_schedule_policy.rb')
-rw-r--r--app/policies/ci/pipeline_schedule_policy.rb18
1 files changed, 10 insertions, 8 deletions
diff --git a/app/policies/ci/pipeline_schedule_policy.rb b/app/policies/ci/pipeline_schedule_policy.rb
index 0e26b6e688a..db561dafbd3 100644
--- a/app/policies/ci/pipeline_schedule_policy.rb
+++ b/app/policies/ci/pipeline_schedule_policy.rb
@@ -2,22 +2,24 @@ module Ci
class PipelineSchedulePolicy < PipelinePolicy
alias_method :pipeline_schedule, :subject
- def rules
- super
-
- if owned_by_developer? && owned_by_another?
- cannot! :update_pipeline_schedule
- end
+ condition(:protected_action) do
+ owned_by_developer? && owned_by_another?
end
+ rule { protected_action }.prevent :update_pipeline_schedule
+
private
def owned_by_developer?
- pipeline_schedule.project.team.developer?(user)
+ return false unless @user
+
+ pipeline_schedule.project.team.developer?(@user)
end
def owned_by_another?
- !pipeline_schedule.owned_by?(user)
+ return false unless @user
+
+ !pipeline_schedule.owned_by?(@user)
end
end
end