diff options
Diffstat (limited to 'app/policies/issuable_policy.rb')
-rw-r--r-- | app/policies/issuable_policy.rb | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/app/policies/issuable_policy.rb b/app/policies/issuable_policy.rb index 496708a9737..60ab1785972 100644 --- a/app/policies/issuable_policy.rb +++ b/app/policies/issuable_policy.rb @@ -1,10 +1,10 @@ # frozen_string_literal: true class IssuablePolicy < BasePolicy - delegate { @subject.project } + delegate { subject_container } condition(:locked, scope: :subject, score: 0) { @subject.discussion_locked? } - condition(:is_project_member) { @user && @subject.project && @subject.project.team.member?(@user) } + condition(:is_project_member) { subject_container.member?(@user) } condition(:can_read_issuable) { can?(:"read_#{@subject.to_ability_name}") } desc "User is the assignee or author" @@ -14,7 +14,7 @@ class IssuablePolicy < BasePolicy condition(:is_author) { @subject&.author == @user } - condition(:is_incident) { @subject.incident? } + condition(:is_incident) { @subject.incident_type_issue? } desc "Issuable is hidden" condition(:hidden, scope: :subject) { @subject.hidden? } @@ -57,6 +57,10 @@ class IssuablePolicy < BasePolicy enable :read_issuable enable :read_issuable_participables end + + def subject_container + @subject.project || @subject.try(:namespace) + end end IssuablePolicy.prepend_mod_with('IssuablePolicy') |