diff options
Diffstat (limited to 'app/views/projects/project_members/index.html.haml')
-rw-r--r-- | app/views/projects/project_members/index.html.haml | 43 |
1 files changed, 33 insertions, 10 deletions
diff --git a/app/views/projects/project_members/index.html.haml b/app/views/projects/project_members/index.html.haml index d1b6db95392..0239e408e87 100644 --- a/app/views/projects/project_members/index.html.haml +++ b/app/views/projects/project_members/index.html.haml @@ -1,7 +1,6 @@ - add_page_specific_style 'page_bundles/members' - page_title _("Members") -.js-remove-member-modal .row.gl-mt-3 .col-lg-12 - if can_invite_members_for_project?(@project) || can_invite_group_for_project?(@project) @@ -11,21 +10,21 @@ %h4 = _("Project members") .gl-justify-content-bottom.gl-display-flex.align-items-center - - if can_manage_project_members?(@project) + - if can?(current_user, :admin_project_member, @project) %p= share_project_description(@project) - else %p = html_escape(_("Members can be added by project %{i_open}Maintainers%{i_close} or %{i_open}Owners%{i_close}")) % { i_open: '<i>'.html_safe, i_close: '</i>'.html_safe } .col-md-12.col-lg-6 .gl-display-flex.gl-flex-wrap.gl-justify-content-end - - if can_import_members? + - if can_admin_project_member?(@project) = link_to _("Import a project"), import_project_project_members_path(@project), class: "btn btn-default btn-md gl-button gl-mt-3 gl-sm-w-auto gl-w-full", title: _("Import members from another project") - if @project.allowed_to_share_with_group? .js-invite-group-trigger{ data: { classes: 'gl-mt-3 gl-sm-w-auto gl-w-full gl-sm-ml-3', display_text: _('Invite a group') } } - - if can_manage_project_members?(@project) && !membership_locked? + - if can_admin_project_member?(@project) .js-invite-members-trigger{ data: { variant: 'success', classes: 'gl-mt-3 gl-sm-w-auto gl-w-full gl-sm-ml-3', trigger_source: 'project-members-page', @@ -36,13 +35,13 @@ - if project_can_be_shared? %h4 = _("Project members") - - if can_manage_project_members?(@project) + - if can?(current_user, :admin_project_member, @project) %p= share_project_description(@project) - else %p = html_escape(_("Members can be added by project %{i_open}Maintainers%{i_close} or %{i_open}Owners%{i_close}")) % { i_open: '<i>'.html_safe, i_close: '</i>'.html_safe } - - if Feature.disabled?(:invite_members_group_modal, @project.group) && can_manage_project_members?(@project) && project_can_be_shared? + - if Feature.disabled?(:invite_members_group_modal, @project.group) && can?(current_user, :admin_project_member, @project) && project_can_be_shared? - if !membership_locked? && @project.allowed_to_share_with_group? %ul.nav-links.nav.nav-tabs.gitlab-tabs{ role: 'tablist' } %li.nav-tab{ role: 'presentation' } @@ -52,13 +51,37 @@ .tab-content.gitlab-tab-content .tab-pane.active{ id: 'invite-member-pane', role: 'tabpanel' } - = render 'shared/members/invite_member', submit_url: project_project_members_path(@project), access_levels: ProjectMember.access_level_roles, default_access_level: @project_member.access_level, can_import_members?: can_import_members?, import_path: import_project_project_members_path(@project) + = render 'shared/members/invite_member', + submit_url: project_project_members_path(@project), + access_levels: ProjectMember.access_level_roles, + default_access_level: @project_member.access_level, + can_import_members?: can_admin_project_member?(@project), + import_path: import_project_project_members_path(@project) .tab-pane{ id: 'invite-group-pane', role: 'tabpanel', class: ('active' if membership_locked?) } - = render 'shared/members/invite_group', submit_url: project_group_links_path(@project), access_levels: ProjectGroupLink.access_options, default_access_level: ProjectGroupLink.default_access, group_link_field: 'link_group_id', group_access_field: 'link_group_access', groups_select_tag_data: { skip_groups: @skip_groups } + = render 'shared/members/invite_group', + submit_url: project_group_links_path(@project), + access_levels: ProjectGroupLink.access_options, + default_access_level: ProjectGroupLink.default_access, + group_link_field: 'link_group_id', + group_access_field: 'link_group_access', + groups_select_tag_data: { skip_groups: @skip_groups } - elsif !membership_locked? - .invite-member= render 'shared/members/invite_member', submit_url: project_project_members_path(@project), access_levels: ProjectMember.access_level_roles, default_access_level: @project_member.access_level, can_import_members?: can_import_members?, import_path: import_project_project_members_path(@project) + .invite-member + = render 'shared/members/invite_member', + submit_url: project_project_members_path(@project), + access_levels: ProjectMember.access_level_roles, + default_access_level: @project_member.access_level, + can_import_members?: can_admin_project_member?(@project), + import_path: import_project_project_members_path(@project) - elsif @project.allowed_to_share_with_group? - .invite-group= render 'shared/members/invite_group', access_levels: ProjectGroupLink.access_options, default_access_level: ProjectGroupLink.default_access, submit_url: project_group_links_path(@project), group_link_field: 'link_group_id', group_access_field: 'link_group_access', groups_select_tag_data: { skip_groups: @skip_groups } + .invite-group + = render 'shared/members/invite_group', + access_levels: ProjectGroupLink.access_options, + default_access_level: ProjectGroupLink.default_access, + submit_url: project_group_links_path(@project), + group_link_field: 'link_group_id', + group_access_field: 'link_group_access', + groups_select_tag_data: { skip_groups: @skip_groups } .js-project-members-list-app{ data: { members_data: project_members_app_data_json(@project, members: @project_members, group_links: @group_links, |