Skip to content
Snippets Groups Projects
Commit 99c1b4fa authored by Gosia Ksionek's avatar Gosia Ksionek :palm_tree:
Browse files

Move endpoints from auth to workspace

parent 14d63122
No related branches found
No related tags found
1 merge request!84469Move endpoints from auth to workspace
......@@ -16,7 +16,7 @@ module Members
params do
requires :user_id, type: Integer, desc: 'The user ID of the member'
end
post ":id/members/:user_id/override" do
post ":id/members/:user_id/override", feature_category: :user_management do
member = find_member(params)
result = ::Members::UpdateService
......@@ -38,7 +38,7 @@ module Members
params do
requires :user_id, type: Integer, desc: 'The user ID of the member'
end
delete ":id/members/:user_id/override" do
delete ":id/members/:user_id/override", feature_category: :user_management do
member = find_member(params)
result = ::Members::UpdateService
......@@ -58,7 +58,7 @@ module Members
params do
requires :member_id, type: Integer, desc: 'The ID of the member requiring approval'
end
put ':id/members/:member_id/approve' do
put ':id/members/:member_id/approve', feature_category: :subgroups do
group = find_group!(params[:id])
member = ::Member.find_by_id(params[:member_id])
......@@ -78,7 +78,7 @@ module Members
end
desc 'Approves all pending members'
post ':id/members/approve_all' do
post ':id/members/approve_all', feature_category: :subgroups do
group = find_group!(params[:id])
bad_request! unless group.root?
......@@ -99,7 +99,7 @@ module Members
params do
use :pagination
end
get ":id/pending_members" do
get ":id/pending_members", feature_category: :subgroups do
group = find_group!(params[:id])
bad_request! unless group.root?
......@@ -119,7 +119,7 @@ module Members
optional :sort, type: String, desc: 'The sorting option', values: Helpers::MembersHelpers.member_sort_options
optional :include_awaiting_members, type: Grape::API::Boolean, desc: 'Determines if awaiting members are included', default: false
end
get ":id/billable_members" do
get ":id/billable_members", feature_category: :subgroups do
group = find_group!(params[:id])
bad_request!(nil) if group.subgroup?
......@@ -148,7 +148,7 @@ module Members
requires :user_id, type: Integer, desc: 'The user ID of the member'
use :pagination
end
get ":id/billable_members/:user_id/memberships" do
get ":id/billable_members/:user_id/memberships", feature_category: :subgroups do
group = find_group!(params[:id])
bad_request! unless can?(current_user, :admin_group_member, group)
......@@ -167,7 +167,7 @@ module Members
params do
requires :user_id, type: Integer, desc: 'The user ID of the member'
end
delete ":id/billable_members/:user_id" do
delete ":id/billable_members/:user_id", feature_category: :subgroups do
group = find_group!(params[:id])
result = ::BillableMembers::DestroyService.new(group, user_id: params[:user_id], current_user: current_user).execute
......
......@@ -6,12 +6,14 @@ class Members < ::API::Base
before { authenticate! }
feature_category :authentication_and_authorization
urgency :low
helpers ::API::Helpers::MembersHelpers
%w[group project].each do |source_type|
{
group => :subgroups,
project => :projects
}.each do |source_type, feature_category|
params do
requires :id, type: String, desc: "The #{source_type} ID"
end
......@@ -27,7 +29,7 @@ class Members < ::API::Base
use :pagination
end
get ":id/members" do
get ":id/members", feature_category: feature_category do
source = find_source(source_type, params[:id])
members = paginate(retrieve_members(source, params: params))
......@@ -46,7 +48,7 @@ class Members < ::API::Base
use :pagination
end
get ":id/members/all" do
get ":id/members/all", feature_category: feature_category do
source = find_source(source_type, params[:id])
members = paginate(retrieve_members(source, params: params, deep: true))
......@@ -61,7 +63,7 @@ class Members < ::API::Base
requires :user_id, type: Integer, desc: 'The user ID of the member'
end
# rubocop: disable CodeReuse/ActiveRecord
get ":id/members/:user_id" do
get ":id/members/:user_id", feature_category: feature_category do
source = find_source(source_type, params[:id])
members = source_members(source)
......@@ -78,7 +80,7 @@ class Members < ::API::Base
requires :user_id, type: Integer, desc: 'The user ID of the member'
end
# rubocop: disable CodeReuse/ActiveRecord
get ":id/members/all/:user_id" do
get ":id/members/all/:user_id", feature_category: feature_category do
source = find_source(source_type, params[:id])
members = find_all_members(source)
......@@ -100,7 +102,7 @@ class Members < ::API::Base
optional :tasks_project_id, type: Integer, desc: 'The project ID in which to create the task issues'
end
post ":id/members" do
post ":id/members", feature_category: feature_category do
source = find_source(source_type, params[:id])
authorize_admin_source!(source_type, source)
......@@ -123,7 +125,7 @@ class Members < ::API::Base
optional :expires_at, type: DateTime, desc: 'Date string in the format YEAR-MONTH-DAY'
end
# rubocop: disable CodeReuse/ActiveRecord
put ":id/members/:user_id" do
put ":id/members/:user_id", feature_category: feature_category do
source = find_source(source_type, params.delete(:id))
authorize_admin_source!(source_type, source)
......@@ -152,7 +154,7 @@ class Members < ::API::Base
desc: 'Flag indicating if the removed member should be unassigned from any issues or merge requests within given group or project'
end
# rubocop: disable CodeReuse/ActiveRecord
delete ":id/members/:user_id" do
delete ":id/members/:user_id", feature_category: feature_category do
source = find_source(source_type, params[:id])
member = source_members(source).find_by!(user_id: params[:user_id])
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment