Move group leave action from dashboard/groups to groups/group_members.
This commit is contained in:
parent
224187ffb9
commit
84371de01f
|
@ -1,21 +1,5 @@
|
||||||
class Dashboard::GroupsController < ApplicationController
|
class Dashboard::GroupsController < ApplicationController
|
||||||
def index
|
def index
|
||||||
@user_groups = current_user.group_members.page(params[:page]).per(PER_PAGE)
|
@group_members = current_user.group_members.page(params[:page]).per(PER_PAGE)
|
||||||
end
|
|
||||||
|
|
||||||
def leave
|
|
||||||
@users_group = group.group_members.where(user_id: current_user.id).first
|
|
||||||
if can?(current_user, :destroy, @users_group)
|
|
||||||
@users_group.destroy
|
|
||||||
redirect_to(dashboard_groups_path, info: "You left #{group.name} group.")
|
|
||||||
else
|
|
||||||
return render_403
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
private
|
|
||||||
|
|
||||||
def group
|
|
||||||
@group ||= Group.find_by(path: params[:id])
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -46,6 +46,17 @@ class Groups::GroupMembersController < Groups::ApplicationController
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def leave
|
||||||
|
@group_member = @group.group_members.where(user_id: current_user.id).first
|
||||||
|
|
||||||
|
if can?(current_user, :destroy_group_member, @group_member)
|
||||||
|
@group_member.destroy
|
||||||
|
redirect_to(dashboard_groups_path, info: "You left #{group.name} group.")
|
||||||
|
else
|
||||||
|
return render_403
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
protected
|
protected
|
||||||
|
|
||||||
def group
|
def group
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
Settings
|
Settings
|
||||||
|
|
||||||
- if can?(current_user, :destroy_group_member, group_member)
|
- if can?(current_user, :destroy_group_member, group_member)
|
||||||
= link_to leave_dashboard_group_path(group), data: { confirm: leave_group_message(group.name) }, method: :delete, class: "btn-sm btn btn-grouped", title: 'Remove user from group' do
|
= link_to leave_group_group_members_path(group), data: { confirm: leave_group_message(group.name) }, method: :delete, class: "btn-sm btn btn-grouped", title: 'Remove user from group' do
|
||||||
%i.fa.fa-sign-out
|
%i.fa.fa-sign-out
|
||||||
Leave
|
Leave
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
- user = member.user
|
- user = member.user
|
||||||
- return unless user
|
- return unless user
|
||||||
- show_roles = true if show_roles.nil?
|
- show_roles = true if show_roles.nil?
|
||||||
|
|
||||||
%li{class: "#{dom_class(member)} js-toggle-container", id: dom_id(member)}
|
%li{class: "#{dom_class(member)} js-toggle-container", id: dom_id(member)}
|
||||||
%span{class: ("list-item-name" if show_controls)}
|
%span{class: ("list-item-name" if show_controls)}
|
||||||
= image_tag avatar_icon(user.email, 16), class: "avatar s16"
|
= image_tag avatar_icon(user.email, 16), class: "avatar s16"
|
||||||
|
@ -21,8 +22,8 @@
|
||||||
title: 'Edit access level', type: 'button' do
|
title: 'Edit access level', type: 'button' do
|
||||||
%i.fa.fa-pencil-square-o
|
%i.fa.fa-pencil-square-o
|
||||||
- if can?(current_user, :destroy_group_member, member)
|
- if can?(current_user, :destroy_group_member, member)
|
||||||
- if current_user == member.user
|
- if current_user == user
|
||||||
= link_to leave_dashboard_group_path(@group), data: { confirm: leave_group_message(@group.name)}, method: :delete, class: "btn-xs btn btn-remove", title: 'Remove user from group' do
|
= link_to leave_group_group_members_path(@group), data: { confirm: leave_group_message(@group.name)}, method: :delete, class: "btn-xs btn btn-remove", title: 'Remove user from group' do
|
||||||
%i.fa.fa-minus.fa-inverse
|
%i.fa.fa-minus.fa-inverse
|
||||||
- else
|
- else
|
||||||
= link_to group_group_member_path(@group, member), data: { confirm: remove_user_from_group_message(@group, user) }, method: :delete, remote: true, class: "btn-xs btn btn-remove", title: 'Remove user from group' do
|
= link_to group_group_member_path(@group, member), data: { confirm: remove_user_from_group_message(@group, user) }, method: :delete, remote: true, class: "btn-xs btn btn-remove", title: 'Remove user from group' do
|
||||||
|
|
|
@ -215,11 +215,7 @@ Gitlab::Application.routes.draw do
|
||||||
scope module: :dashboard do
|
scope module: :dashboard do
|
||||||
resources :milestones, only: [:index, :show]
|
resources :milestones, only: [:index, :show]
|
||||||
|
|
||||||
resources :groups, only: [:index] do
|
resources :groups, only: [:index]
|
||||||
member do
|
|
||||||
delete :leave
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
resources :projects, only: [] do
|
resources :projects, only: [] do
|
||||||
collection do
|
collection do
|
||||||
|
@ -241,6 +237,7 @@ Gitlab::Application.routes.draw do
|
||||||
|
|
||||||
scope module: :groups do
|
scope module: :groups do
|
||||||
resources :group_members, only: [:index, :create, :update, :destroy] do
|
resources :group_members, only: [:index, :create, :update, :destroy] do
|
||||||
|
delete :leave, on: :collection
|
||||||
end
|
end
|
||||||
|
|
||||||
resource :avatar, only: [:destroy]
|
resource :avatar, only: [:destroy]
|
||||||
|
|
Loading…
Reference in New Issue