summaryrefslogtreecommitdiff
path: root/app/models
diff options
context:
space:
mode:
Diffstat (limited to 'app/models')
-rw-r--r--app/models/concerns/issuable.rb2
-rw-r--r--app/models/merge_request.rb3
-rw-r--r--app/models/note.rb11
3 files changed, 7 insertions, 9 deletions
diff --git a/app/models/concerns/issuable.rb b/app/models/concerns/issuable.rb
index 765ccf540c3..265f6e48540 100644
--- a/app/models/concerns/issuable.rb
+++ b/app/models/concerns/issuable.rb
@@ -338,7 +338,7 @@ module Issuable
##
# Override in issuable specialization
#
- def first_contribution?(*)
+ def first_contribution?
false
end
end
diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb
index a5b037d94c2..2a56bab48a3 100644
--- a/app/models/merge_request.rb
+++ b/app/models/merge_request.rb
@@ -960,8 +960,9 @@ class MergeRequest < ActiveRecord::Base
Projects::OpenMergeRequestsCountService.new(target_project).refresh_cache
end
- def first_contribution?(*)
+ def first_contribution?
return false if project.team.max_member_access(author_id) > Gitlab::Access::GUEST
+
project.merge_requests.merged.where(author_id: author_id).empty?
end
diff --git a/app/models/note.rb b/app/models/note.rb
index b1fe60aa387..f44590e2144 100644
--- a/app/models/note.rb
+++ b/app/models/note.rb
@@ -47,7 +47,7 @@ class Note < ActiveRecord::Base
# A special role that may be displayed on issuable's discussions
attr_accessor :special_role
-
+
default_value_for :system, false
attr_mentionable :note, pipeline: :note
@@ -233,15 +233,12 @@ class Note < ActiveRecord::Base
self.class.has_special_role?(role, self)
end
- def specialize!(role)
- self.special_role = role if !block_given? || yield(self)
- end
-
def specialize_for_first_contribution!(noteable)
return unless noteable.author_id == self.author_id
- specialize!(Note::SpecialRole::FIRST_TIME_CONTRIBUTOR)
+
+ self.special_role = Note::SpecialRole::FIRST_TIME_CONTRIBUTOR
end
-
+
def editable?
!system?
end