From b76ae638462ab0f673e5915986070518dd3f9ad3 Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Thu, 19 Aug 2021 09:08:42 +0000 Subject: Add latest changes from gitlab-org/gitlab@14-2-stable-ee --- app/helpers/invite_members_helper.rb | 64 +++++++++++++++++++++++++++++------- 1 file changed, 52 insertions(+), 12 deletions(-) (limited to 'app/helpers/invite_members_helper.rb') diff --git a/app/helpers/invite_members_helper.rb b/app/helpers/invite_members_helper.rb index 3c290701a5f..5134b484249 100644 --- a/app/helpers/invite_members_helper.rb +++ b/app/helpers/invite_members_helper.rb @@ -4,21 +4,17 @@ module InviteMembersHelper include Gitlab::Utils::StrongMemoize def can_invite_members_for_project?(project) - Feature.enabled?(:invite_members_group_modal, project.group) && can_manage_project_members?(project) + # do not use the can_admin_project_member? helper here due to structure of the view and how membership_locked? + # is leveraged for inviting groups + Feature.enabled?(:invite_members_group_modal, project.group) && can?(current_user, :admin_project_member, project) end def can_invite_group_for_project?(project) - Feature.enabled?(:invite_members_group_modal, project.group) && can_manage_project_members?(project) && project.allowed_to_share_with_group? - end - - def directly_invite_members? - strong_memoize(:directly_invite_members) do - can_import_members? - end - end - - def invite_group_members?(group) - experiment_enabled?(:invite_members_empty_group_version_a) && Ability.allowed?(current_user, :admin_group_member, group) + # do not use the can_admin_project_member? helper here due to structure of the view and how membership_locked? + # is leveraged for inviting groups + Feature.enabled?(:invite_members_group_modal, project.group) && + can?(current_user, :admin_project_member, project) && + project.allowed_to_share_with_group? end def invite_accepted_notice(member) @@ -39,4 +35,48 @@ module InviteMembersHelper {} end end + + def common_invite_modal_dataset(source) + dataset = { + id: source.id, + name: source.name, + default_access_level: Gitlab::Access::GUEST + } + + experiment(:member_areas_of_focus, user: current_user) do |e| + e.publish_to_database + + e.control { dataset.merge!(areas_of_focus_options: [], no_selection_areas_of_focus: []) } + e.candidate { dataset.merge!(areas_of_focus_options: member_areas_of_focus_options.to_json, no_selection_areas_of_focus: ['no_selection']) } + end + + dataset + end + + private + + def member_areas_of_focus_options + [ + { + value: 'Contribute to the codebase', text: s_('InviteMembersModal|Contribute to the codebase') + }, + { + value: 'Collaborate on open issues and merge requests', text: s_('InviteMembersModal|Collaborate on open issues and merge requests') + }, + { + value: 'Configure CI/CD', text: s_('InviteMembersModal|Configure CI/CD') + }, + { + value: 'Configure security features', text: s_('InviteMembersModal|Configure security features') + }, + { + value: 'Other', text: s_('InviteMembersModal|Other') + } + ] + end + + # Overridden in EE + def users_filter_data(group) + {} + end end -- cgit v1.2.3