Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app/models/issue.rb')
-rw-r--r--app/models/issue.rb38
1 files changed, 19 insertions, 19 deletions
diff --git a/app/models/issue.rb b/app/models/issue.rb
index bbc484cc434..b7ccbe3ae12 100644
--- a/app/models/issue.rb
+++ b/app/models/issue.rb
@@ -544,6 +544,25 @@ class Issue < ApplicationRecord
self.update_column(:upvotes_count, self.upvotes)
end
+ # Returns `true` if the given User can read the current Issue.
+ #
+ # This method duplicates the same check of issue_policy.rb
+ # for performance reasons, check commit: 002ad215818450d2cbbc5fa065850a953dc7ada8
+ # Make sure to sync this method with issue_policy.rb
+ def readable_by?(user)
+ if user.can_read_all_resources?
+ true
+ elsif project.owner == user
+ true
+ elsif confidential? && !assignee_or_author?(user)
+ project.team.member?(user, Gitlab::Access::REPORTER)
+ else
+ project.public? ||
+ project.internal? && !user.external? ||
+ project.team.member?(user)
+ end
+ end
+
private
def spammable_attribute_changed?
@@ -569,25 +588,6 @@ class Issue < ApplicationRecord
Gitlab::UsageDataCounters::IssueActivityUniqueCounter.track_issue_created_action(author: author)
end
- # Returns `true` if the given User can read the current Issue.
- #
- # This method duplicates the same check of issue_policy.rb
- # for performance reasons, check commit: 002ad215818450d2cbbc5fa065850a953dc7ada8
- # Make sure to sync this method with issue_policy.rb
- def readable_by?(user)
- if user.can_read_all_resources?
- true
- elsif project.owner == user
- true
- elsif confidential? && !assignee_or_author?(user)
- project.team.member?(user, Gitlab::Access::REPORTER)
- else
- project.public? ||
- project.internal? && !user.external? ||
- project.team.member?(user)
- end
- end
-
# Returns `true` if this Issue is visible to everybody.
def publicly_visible?
project.public? && !confidential? && !::Gitlab::ExternalAuthorization.enabled?