parent
56a456b43d
commit
9910b7ff99
|
@ -102,7 +102,7 @@ class ProjectsController < ApplicationController
|
|||
note_type = params['type']
|
||||
note_id = params['type_id']
|
||||
autocomplete = ::Projects::AutocompleteService.new(@project)
|
||||
participants = ::Projects::ParticipantsService.new(@project).execute(note_type, note_id)
|
||||
participants = ::Projects::ParticipantsService.new(@project, current_user).execute(note_type, note_id)
|
||||
|
||||
@suggestions = {
|
||||
emojis: autocomplete_emojis,
|
||||
|
|
|
@ -51,9 +51,12 @@ module Mentionable
|
|||
identifier = match.delete "@"
|
||||
if identifier == "all"
|
||||
users.push(*project.team.members.flatten)
|
||||
else
|
||||
id = User.find_by(username: identifier).try(:id)
|
||||
users << User.find(id) unless id.blank?
|
||||
elsif namespace = Namespace.find_by(path: identifier)
|
||||
if namespace.type == "Group"
|
||||
users.push(*namespace.users)
|
||||
else
|
||||
users << namespace.owner
|
||||
end
|
||||
end
|
||||
end
|
||||
users.uniq
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
module Projects
|
||||
class ParticipantsService < BaseService
|
||||
def initialize(project)
|
||||
@project = project
|
||||
def initialize(project, user)
|
||||
@project = project
|
||||
@user = user
|
||||
end
|
||||
|
||||
def execute(note_type, note_id)
|
||||
|
@ -12,7 +13,7 @@ module Projects
|
|||
[]
|
||||
end
|
||||
team_members = sorted(@project.team.members)
|
||||
participants = all_members + team_members + participating
|
||||
participants = all_members + groups + team_members + participating
|
||||
participants.uniq
|
||||
end
|
||||
|
||||
|
@ -37,6 +38,10 @@ module Projects
|
|||
users.uniq.to_a.compact.sort_by(&:username).map { |user| { username: user.username, name: user.name } }
|
||||
end
|
||||
|
||||
def groups
|
||||
@user.authorized_groups.sort_by(&:path).map { |group| { username: group.path, name: group.name } }
|
||||
end
|
||||
|
||||
def all_members
|
||||
[{ username: "all", name: "Project and Group Members" }]
|
||||
end
|
||||
|
|
|
@ -170,7 +170,7 @@ GFM will turn that reference into a link so you can navigate between them easily
|
|||
|
||||
GFM will recognize the following:
|
||||
|
||||
- @foo : for team members
|
||||
- @foo : for specific team members or groups
|
||||
- @all : for the whole team
|
||||
- #123 : for issues
|
||||
- !123 : for merge requests
|
||||
|
|
|
@ -202,8 +202,15 @@ module Gitlab
|
|||
|
||||
if identifier == "all"
|
||||
link_to("@all", project_url(project), options)
|
||||
elsif User.find_by(username: identifier)
|
||||
link_to("@#{identifier}", user_url(identifier), options)
|
||||
elsif namespace = Namespace.find_by(path: identifier)
|
||||
url =
|
||||
if namespace.type == "Group"
|
||||
group_url(identifier)
|
||||
else
|
||||
user_url(identifier)
|
||||
end
|
||||
|
||||
link_to("@#{identifier}", url, options)
|
||||
end
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in New Issue