diff --git a/app/controllers/admin/groups_controller.rb b/app/controllers/admin/groups_controller.rb index 8e486a1ac9f9309d4090e65e7d1c1977136b9eef..5b5d6497f1d64dc06a22db1b7f15bff4c896f711 100644 --- a/app/controllers/admin/groups_controller.rb +++ b/app/controllers/admin/groups_controller.rb @@ -53,7 +53,7 @@ def create def update @group.build_admin_note unless @group.admin_note - if @group.update(group_params) + if Groups::UpdateService.new(@group, current_user, group_params).execute unless Gitlab::Utils.to_boolean(group_params['runner_registration_enabled']) Ci::Runners::ResetRegistrationTokenService.new(@group, current_user).execute end diff --git a/ee/app/controllers/ee/admin/groups_controller.rb b/ee/app/controllers/ee/admin/groups_controller.rb index b8d05243c7f2f2e770200e45e1eddad40cf2cf19..992873312918f85b50ae2c83e9b8a0e471ef5b6d 100644 --- a/ee/app/controllers/ee/admin/groups_controller.rb +++ b/ee/app/controllers/ee/admin/groups_controller.rb @@ -38,17 +38,6 @@ def group_members def groups super.with_deletion_schedule end - - override :group_params - def group_params - modify_group_params(super) - end - - def modify_group_params(params) - limit = params.delete(:repository_size_limit) - params[:repository_size_limit] = ::Gitlab::Utils.try_megabytes_to_bytes(limit) if limit - params - end end end end diff --git a/ee/spec/controllers/admin/groups_controller_spec.rb b/ee/spec/controllers/admin/groups_controller_spec.rb index 7ee3a006c5afd7e99dfa3351a93b3b474253a619..c368a0c34fd8b0185ad4bce0ea77f40f7e159ea0 100644 --- a/ee/spec/controllers/admin/groups_controller_spec.rb +++ b/ee/spec/controllers/admin/groups_controller_spec.rb @@ -31,6 +31,20 @@ end end + describe 'POST #create', :with_current_organization do + subject(:post_request) { post :create, params: { group: params } } + + context 'when repository size limit is provided' do + let(:params) { { path: 'test', name: 'test', repository_size_limit: '5000' } } + + it 'creates a group with a correct repository limit' do + expect { post_request }.to change { Group.count }.by(1) + + expect(Group.last.repository_size_limit).to eq(5000.megabytes) + end + end + end + describe 'PUT #update' do it 'converts the user entered MiB value into bytes' do put :update, params: { id: group, group: { repository_size_limit: '5000' } }