diff options
| author | Simon Knox <psimyn@gmail.com> | 2018-02-07 20:05:38 +1100 |
|---|---|---|
| committer | Simon Knox <psimyn@gmail.com> | 2018-02-07 20:05:38 +1100 |
| commit | 4e91d397833eb10e9eb64a48387c441be2922dfb (patch) | |
| tree | 079cbe95e6b0ac773987dd2ccedb98b1ded9681b /app/controllers/groups_controller.rb | |
| parent | b68e473e7bb2b64e1a36c54f9ced10ffe5a96763 (diff) | |
| parent | 4457cf9d178dc9912fd9c16427ad81b389179d00 (diff) | |
| download | gitlab-ce-snake-case.tar.gz | |
Merge branch 'master' into snake-casesnake-case
Diffstat (limited to 'app/controllers/groups_controller.rb')
| -rw-r--r-- | app/controllers/groups_controller.rb | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/app/controllers/groups_controller.rb b/app/controllers/groups_controller.rb index eb53a522f90..7d129c5dece 100644 --- a/app/controllers/groups_controller.rb +++ b/app/controllers/groups_controller.rb @@ -10,7 +10,7 @@ class GroupsController < Groups::ApplicationController before_action :group, except: [:index, :new, :create] # Authorize - before_action :authorize_admin_group!, only: [:edit, :update, :destroy, :projects] + before_action :authorize_admin_group!, only: [:edit, :update, :destroy, :projects, :transfer] before_action :authorize_create_group!, only: [:new] before_action :group_projects, only: [:projects, :activity, :issues, :merge_requests] @@ -94,6 +94,19 @@ class GroupsController < Groups::ApplicationController redirect_to root_path, status: 302, alert: "Group '#{@group.name}' was scheduled for deletion." end + def transfer + parent_group = Group.find_by(id: params[:new_parent_group_id]) + service = ::Groups::TransferService.new(@group, current_user) + + if service.execute(parent_group) + flash[:notice] = "Group '#{@group.name}' was successfully transferred." + redirect_to group_path(@group) + else + flash.now[:alert] = service.error + render :edit + end + end + protected def authorize_create_group! @@ -118,10 +131,10 @@ class GroupsController < Groups::ApplicationController end def group_params - params.require(:group).permit(group_params_ce) + params.require(:group).permit(group_params_attributes) end - def group_params_ce + def group_params_attributes [ :avatar, :description, @@ -150,7 +163,6 @@ class GroupsController < Groups::ApplicationController @projects = GroupProjectsFinder.new(params: params, group: group, options: options, current_user: current_user) .execute .includes(:namespace) - .page(params[:page]) @events = EventCollection .new(@projects, offset: params[:offset].to_i, filter: event_filter) |
