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:
authorDouwe Maan <douwe@selenight.nl>2016-07-26 07:40:44 +0300
committerDouwe Maan <douwe@selenight.nl>2016-07-26 07:40:44 +0300
commited6c8238f3524feeab187b607362806ed1c666ad (patch)
tree670a3a811e2a65e97d86839c14bb62098730d8a6 /app/models/discussion.rb
parentbbab5d014f10914b1e5d7a73dc0e85ea57344979 (diff)
Add access checks for diff note and discussion resolution
Diffstat (limited to 'app/models/discussion.rb')
-rw-r--r--app/models/discussion.rb8
1 files changed, 8 insertions, 0 deletions
diff --git a/app/models/discussion.rb b/app/models/discussion.rb
index 64116d225ae..cc586933112 100644
--- a/app/models/discussion.rb
+++ b/app/models/discussion.rb
@@ -63,6 +63,14 @@ class Discussion
notes.any?(&:to_be_resolved?)
end
+ def can_resolve?(current_user)
+ return false unless current_user
+ return false unless resolvable?
+
+ current_user == self.noteable.author ||
+ can?(current_user, :push_code, self.project)
+ end
+
def resolve!(current_user)
notes.each do |note|
note.resolve!(current_user) if note.resolvable?