summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean McGivern <sean@mcgivern.me.uk>2016-12-09 17:59:29 +0000
committerSean McGivern <sean@mcgivern.me.uk>2016-12-09 17:59:29 +0000
commitb546fd7bba7434c787debb92e944b34420a0ee4c (patch)
tree3f18fce68a9cf46d6412f93a0b1ee430f7b89373
parent43bd03ea54280af8b29130d0099a2bf6987b80d8 (diff)
parentd74ad9263048549e4d90e6a22313768109eaf2c4 (diff)
downloadgitlab-ce-b546fd7bba7434c787debb92e944b34420a0ee4c.tar.gz
Merge branch 'followup-7899' into 'master'
Use a single query in Projects::ProjectMembersController to fetch members See merge request !7997
-rw-r--r--app/controllers/projects/project_members_controller.rb11
1 files changed, 5 insertions, 6 deletions
diff --git a/app/controllers/projects/project_members_controller.rb b/app/controllers/projects/project_members_controller.rb
index 3fb8bba3cd0..53308948f62 100644
--- a/app/controllers/projects/project_members_controller.rb
+++ b/app/controllers/projects/project_members_controller.rb
@@ -35,13 +35,12 @@ class Projects::ProjectMembersController < Projects::ApplicationController
@group_links = @project.project_group_links.where(group_id: @project.invited_groups.search(params[:search]).select(:id))
end
- member_ids = @project_members.pluck(:id)
+ wheres = ["id IN (#{@project_members.select(:id).to_sql})"]
+ wheres << "id IN (#{group_members.select(:id).to_sql})" if group_members
- if group_members
- member_ids += group_members.pluck(:id)
- end
-
- @project_members = Member.where(id: member_ids).order(access_level: :desc).page(params[:page])
+ @project_members = Member.
+ where(wheres.join(' OR ')).
+ order(access_level: :desc).page(params[:page])
@requesters = AccessRequestsFinder.new(@project).execute(current_user)