summaryrefslogtreecommitdiff
path: root/lib/api/helpers/members_helpers.rb
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2019-11-22 06:06:20 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2019-11-22 06:06:20 +0000
commit8e75748aabcbcea411f8bbc68936805bc2b5ff0c (patch)
tree9186d3e27c66b3680e2039d6769233750c74cc4b /lib/api/helpers/members_helpers.rb
parent98eaa8d2de5dd751d7a42fa5d601715064f14297 (diff)
downloadgitlab-ce-8e75748aabcbcea411f8bbc68936805bc2b5ff0c.tar.gz
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'lib/api/helpers/members_helpers.rb')
-rw-r--r--lib/api/helpers/members_helpers.rb21
1 files changed, 17 insertions, 4 deletions
diff --git a/lib/api/helpers/members_helpers.rb b/lib/api/helpers/members_helpers.rb
index 1395ffadab9..5bebf7ef570 100644
--- a/lib/api/helpers/members_helpers.rb
+++ b/lib/api/helpers/members_helpers.rb
@@ -13,10 +13,19 @@ module API
authorize! :"admin_#{source_type}", source
end
- def find_all_members(source_type, source)
- members = source_type == 'project' ? find_all_members_for_project(source) : find_all_members_for_group(source)
- members.non_invite
- .non_request
+ # rubocop: disable CodeReuse/ActiveRecord
+ def retrieve_members(source, params:, deep: false)
+ members = deep ? find_all_members(source) : source.members.where.not(user_id: nil)
+ members = members.includes(:user)
+ members = members.references(:user).merge(User.search(params[:query])) if params[:query].present?
+ members = members.where(user_id: params[:user_ids]) if params[:user_ids].present?
+ members
+ end
+ # rubocop: enable CodeReuse/ActiveRecord
+
+ def find_all_members(source)
+ members = source.is_a?(Project) ? find_all_members_for_project(source) : find_all_members_for_group(source)
+ members.non_invite.non_request
end
def find_all_members_for_project(project)
@@ -26,6 +35,10 @@ module API
def find_all_members_for_group(group)
GroupMembersFinder.new(group).execute
end
+
+ def present_members(members)
+ present members, with: Entities::Member, current_user: current_user
+ end
end
end
end