diff options
-rw-r--r-- | app/controllers/groups/group_members_controller.rb | 11 | ||||
-rw-r--r-- | app/controllers/projects/project_members_controller.rb | 13 | ||||
-rw-r--r-- | app/views/groups/group_members/_group_member.html.haml | 4 | ||||
-rw-r--r-- | app/views/projects/project_members/_project_member.html.haml | 4 | ||||
-rw-r--r-- | config/routes.rb | 5 |
5 files changed, 37 insertions, 0 deletions
diff --git a/app/controllers/groups/group_members_controller.rb b/app/controllers/groups/group_members_controller.rb index f8aa4b0bbd5..1a4b13b9d73 100644 --- a/app/controllers/groups/group_members_controller.rb +++ b/app/controllers/groups/group_members_controller.rb @@ -47,6 +47,17 @@ class Groups::GroupMembersController < Groups::ApplicationController end end + def resend_invite + @group_member = @group.group_members.find(params[:id]) + if @group_member.invite? + @group_member.resend_invite + + redirect_to group_group_members_path(@group), notice: 'Invite was successfully resent.' + else + redirect_to group_group_members_path(@group), alert: 'The invite has already been accepted.' + end + end + def leave @group_member = @group.group_members.where(user_id: current_user.id).first diff --git a/app/controllers/projects/project_members_controller.rb b/app/controllers/projects/project_members_controller.rb index 91aba9a7068..e55e8e4c504 100644 --- a/app/controllers/projects/project_members_controller.rb +++ b/app/controllers/projects/project_members_controller.rb @@ -59,6 +59,19 @@ class Projects::ProjectMembersController < Projects::ApplicationController end end + def resend_invite + @project_member = @project.project_members.find(params[:id]) + if @project_member.invite? + @project_member.resend_invite + + redirect_to namespace_project_project_members_path(@project.namespace, + @project), notice: 'Invite was successfully resent.' + else + redirect_to namespace_project_project_members_path(@project.namespace, + @project), alert: 'The invite has already been accepted.' + end + end + def leave @project.project_members.find_by(user_id: current_user).destroy diff --git a/app/views/groups/group_members/_group_member.html.haml b/app/views/groups/group_members/_group_member.html.haml index 670d5e02e61..56b1948a474 100644 --- a/app/views/groups/group_members/_group_member.html.haml +++ b/app/views/groups/group_members/_group_member.html.haml @@ -24,6 +24,10 @@ = link_to member.created_by.name, user_path(member.created_by) = time_ago_with_tooltip(member.created_at) + - if show_controls && can?(current_user, :admin_group, @group) + = link_to resend_invite_group_group_member_path(@group, member), method: :post, class: "btn-xs btn", title: 'Resend invite' do + Resend invite + - if show_roles %span.pull-right %strong= member.human_access diff --git a/app/views/projects/project_members/_project_member.html.haml b/app/views/projects/project_members/_project_member.html.haml index 4be531deddd..635e4d70941 100644 --- a/app/views/projects/project_members/_project_member.html.haml +++ b/app/views/projects/project_members/_project_member.html.haml @@ -24,6 +24,10 @@ = link_to member.created_by.name, user_path(member.created_by) = time_ago_with_tooltip(member.created_at) + - if current_user_can_admin_project + = link_to resend_invite_namespace_project_project_member_path(@project.namespace, @project, member), method: :post, class: "btn-xs btn", title: 'Resend invite' do + Resend invite + - if current_user_can_admin_project - unless @project.personal? && user == current_user .pull-right diff --git a/config/routes.rb b/config/routes.rb index bd2a791f94a..50d11fde57d 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -260,6 +260,7 @@ Gitlab::Application.routes.draw do scope module: :groups do resources :group_members, only: [:index, :create, :update, :destroy] do + post :resend_invite, on: :member delete :leave, on: :collection end @@ -486,6 +487,10 @@ Gitlab::Application.routes.draw do get :import post :apply_import end + + member do + post :resend_invite + end end resources :notes, only: [:index, :create, :destroy, :update], constraints: { id: /\d+/ } do |