summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDouwe Maan <douwe@gitlab.com>2015-04-10 15:26:03 +0200
committerDouwe Maan <douwe@gitlab.com>2015-04-14 12:08:10 +0200
commit453340d4496ce0500985d6432c32e8d31be350a7 (patch)
tree93a4cd16b256c0cd92437d044cae0b736d6ee4ac
parent87dd3f215f8c087d85cde7ac880c5480fd501303 (diff)
downloadgitlab-ce-453340d4496ce0500985d6432c32e8d31be350a7.tar.gz
Let membership invitations be resent.
-rw-r--r--app/controllers/groups/group_members_controller.rb11
-rw-r--r--app/controllers/projects/project_members_controller.rb13
-rw-r--r--app/views/groups/group_members/_group_member.html.haml4
-rw-r--r--app/views/projects/project_members/_project_member.html.haml4
-rw-r--r--config/routes.rb5
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