From 85dc423f7090da0a52c73eb66faf22ddb20efff9 Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Sat, 19 Sep 2020 01:45:44 +0000 Subject: Add latest changes from gitlab-org/gitlab@13-4-stable-ee --- app/helpers/groups/group_members_helper.rb | 79 ++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) (limited to 'app/helpers/groups/group_members_helper.rb') diff --git a/app/helpers/groups/group_members_helper.rb b/app/helpers/groups/group_members_helper.rb index 1952325c504..dcff2be34da 100644 --- a/app/helpers/groups/group_members_helper.rb +++ b/app/helpers/groups/group_members_helper.rb @@ -1,6 +1,10 @@ # frozen_string_literal: true module Groups::GroupMembersHelper + include AvatarsHelper + + AVATAR_SIZE = 40 + def group_member_select_options { multiple: true, class: 'input-clamp qa-member-select-field ', scope: :all, email_user: true } end @@ -8,6 +12,81 @@ module Groups::GroupMembersHelper def render_invite_member_for_group(group, default_access_level) render 'shared/members/invite_member', submit_url: group_group_members_path(group), access_levels: GroupMember.access_level_roles, default_access_level: default_access_level end + + def linked_groups_data_json(group_links) + GroupGroupLinkSerializer.new.represent(group_links).to_json + end + + def members_data_json(group, members) + members_data(group, members).to_json + end + + private + + def members_data(group, members) + members.map do |member| + user = member.user + source = member.source + + data = { + id: member.id, + created_at: member.created_at, + expires_at: member.expires_at&.to_time, + requested_at: member.requested_at, + can_update: member.can_update?, + can_remove: member.can_remove?, + can_override: member.can_override?, + access_level: { + string_value: member.human_access, + integer_value: member.access_level + }, + source: { + id: source.id, + name: source.full_name, + web_url: Gitlab::UrlBuilder.build(source) + } + }.merge(member_created_by_data(member.created_by)) + + if user.present? + data[:user] = member_user_data(user) + else + data[:invite] = member_invite_data(member) + end + + data + end + end + + def member_created_by_data(created_by) + return {} unless created_by.present? + + { + created_by: { + name: created_by.name, + web_url: Gitlab::UrlBuilder.build(created_by) + } + } + end + + def member_user_data(user) + { + id: user.id, + name: user.name, + username: user.username, + web_url: Gitlab::UrlBuilder.build(user), + avatar_url: avatar_icon_for_user(user, AVATAR_SIZE), + blocked: user.blocked?, + two_factor_enabled: user.two_factor_enabled? + } + end + + def member_invite_data(member) + { + email: member.invite_email, + avatar_url: avatar_icon_for_email(member.invite_email, AVATAR_SIZE), + can_resend: member.can_resend_invite? + } + end end Groups::GroupMembersHelper.prepend_if_ee('EE::Groups::GroupMembersHelper') -- cgit v1.2.1