summaryrefslogtreecommitdiff
path: root/app/helpers/invite_members_helper.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/helpers/invite_members_helper.rb')
-rw-r--r--app/helpers/invite_members_helper.rb64
1 files changed, 52 insertions, 12 deletions
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