summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorPhil Hughes <me@iamphill.com>2016-09-02 10:50:06 +0100
committerPhil Hughes <me@iamphill.com>2016-09-13 08:44:59 +0100
commit3e19f1976f9a13fc1b13ec49b3ce31c3e114a454 (patch)
tree2d8b839c9401822c44ea1cf44aeb748b4e3be808 /app
parentcdc55db3452ca82f0dbdcdb631a1fc48abdf1f84 (diff)
downloadgitlab-ce-3e19f1976f9a13fc1b13ec49b3ce31c3e114a454.tar.gz
Fixed issue with invited users not showing up
Diffstat (limited to 'app')
-rw-r--r--app/controllers/projects/project_members_controller.rb14
-rw-r--r--app/models/project_team.rb8
-rw-r--r--app/views/projects/project_members/_team.html.haml5
3 files changed, 19 insertions, 8 deletions
diff --git a/app/controllers/projects/project_members_controller.rb b/app/controllers/projects/project_members_controller.rb
index 617dd9823b9..2175a5d8dcb 100644
--- a/app/controllers/projects/project_members_controller.rb
+++ b/app/controllers/projects/project_members_controller.rb
@@ -6,7 +6,19 @@ class Projects::ProjectMembersController < Projects::ApplicationController
def index
@groups = @project.project_group_links
- @project_members = @project.team.members(!can?(current_user, :admin_project, @project))
+
+ members = []
+ project_members = @project.project_members
+ project_members = project_members.non_invite unless can?(current_user, :admin_project, @project)
+ members << project_members.pluck(:id)
+
+ if @project.group
+ group_members = @project.group.group_members
+ group_members = group_members.non_invite unless can?(current_user, :admin_project, @project)
+ members << group_members.pluck(:id)
+ end
+
+ @project_members = Member.where(id: members)
@project_members_size = @project_members.size
if params[:search].present?
diff --git a/app/models/project_team.rb b/app/models/project_team.rb
index a58c56288dd..ab6ea2aae36 100644
--- a/app/models/project_team.rb
+++ b/app/models/project_team.rb
@@ -52,8 +52,8 @@ class ProjectTeam
ProjectMember.truncate_team(project)
end
- def members(non_invite = false)
- @members ||= fetch_members(nil, non_invite)
+ def members
+ @members ||= fetch_members
end
alias_method :users, :members
@@ -197,7 +197,7 @@ class ProjectTeam
access.each { |key, value| access[key] = [value, capped_access_level].min }
end
- def fetch_members(level = nil, non_invite = false)
+ def fetch_members(level = nil)
project_members = project.members
group_members = group ? group.members : []
invited_members = []
@@ -236,7 +236,7 @@ class ProjectTeam
end
user_ids = project_members.pluck(:user_id)
- user_ids.push(*invited_members.map(&:user_id)) if invited_members.any? && non_invite
+ user_ids.push(*invited_members.map(&:user_id)) if invited_members.any?
user_ids.push(*group_members.pluck(:user_id)) if group
User.where(id: user_ids)
diff --git a/app/views/projects/project_members/_team.html.haml b/app/views/projects/project_members/_team.html.haml
index 2af9fe0519c..867cb2b97e4 100644
--- a/app/views/projects/project_members/_team.html.haml
+++ b/app/views/projects/project_members/_team.html.haml
@@ -4,6 +4,5 @@
%strong #{@project.name}
%span.badge= @project_members_size
%ul.content-list
- - members.each do |user|
- - member = @project.team.find_member(user.id)
- = render 'shared/members/member', member: member, user: user
+ - members.each do |member|
+ = render 'shared/members/member', member: member