diff --git a/app/controllers/groups/group_members_controller.rb b/app/controllers/groups/group_members_controller.rb index 9813d850baa93925d064f8ccf29ccf862943436d..453017e2f2b33f382ac13e804b0ef8645461313b 100644 --- a/app/controllers/groups/group_members_controller.rb +++ b/app/controllers/groups/group_members_controller.rb @@ -5,13 +5,12 @@ class Groups::GroupMembersController < Groups::ApplicationController include MembersPresentation include SortingHelper - # Authorize - before_action :authorize_admin_group_member!, except: [:index, :leave, :request_access, :update, :override] - before_action :authorize_update_group_member!, only: [:update, :override] + def self.admin_not_required_endpoints + %i[index leave request_access] + end - skip_cross_project_access_check :index, :create, :update, :destroy, :request_access, - :approve_access_request, :leave, :resend_invite, - :override + # Authorize + before_action :authorize_admin_group_member!, except: admin_not_required_endpoints skip_cross_project_access_check :index, :create, :update, :destroy, :request_access, :approve_access_request, :leave, :resend_invite, diff --git a/app/controllers/groups/milestones_controller.rb b/app/controllers/groups/milestones_controller.rb index 720a1b9d48ee69454a79a5f2eb7bf366fe1511ce..31f6bbc14e2ef9e082df37da272f663061a3d700 100644 --- a/app/controllers/groups/milestones_controller.rb +++ b/app/controllers/groups/milestones_controller.rb @@ -1,4 +1,6 @@ class Groups::MilestonesController < Groups::ApplicationController + prepend EE::Groups::MilestonesController + include MilestoneActions before_action :group_projects @@ -77,17 +79,14 @@ def milestone_path def milestones milestones = MilestonesFinder.new(search_params).execute - legacy_milestones = - if params[:only_group_milestones] - [] - else - GroupMilestone.build_collection(group, group_projects, params) - end - @sort = params[:sort] || 'due_date_asc' MilestoneArray.sort(milestones + legacy_milestones, @sort) end + def legacy_milestones + GroupMilestone.build_collection(group, group_projects, params) + end + def milestone @milestone = if params[:title] diff --git a/ee/app/controllers/ee/groups/group_members_controller.rb b/ee/app/controllers/ee/groups/group_members_controller.rb index 11028230550fde83cff3bf2b3ab778491d216eaf..77239b26f87527f7f4137ea0b48e839e2d08983d 100644 --- a/ee/app/controllers/ee/groups/group_members_controller.rb +++ b/ee/app/controllers/ee/groups/group_members_controller.rb @@ -3,6 +3,19 @@ module Groups module GroupMembersController extend ActiveSupport::Concern + class_methods do + extend ::Gitlab::Utils::Override + + override :admin_not_required_endpoints + def admin_not_required_endpoints + super.concat(%i[update override]) + end + end + + included do + before_action :authorize_update_group_member!, only: [:update, :override] + end + # rubocop:disable Gitlab/ModuleWithInstanceVariables def override member = @group.members.find_by!(id: params[:id]) diff --git a/ee/app/controllers/ee/groups/milestones_controller.rb b/ee/app/controllers/ee/groups/milestones_controller.rb new file mode 100644 index 0000000000000000000000000000000000000000..255c6e3ece5be928f2ffadd663643613916d1aef --- /dev/null +++ b/ee/app/controllers/ee/groups/milestones_controller.rb @@ -0,0 +1,12 @@ +module EE + module Groups + module MilestonesController + extend ::Gitlab::Utils::Override + + override :legacy_milestones + def legacy_milestones + params[:only_group_milestones] ? [] : super + end + end + end +end