Merge branch '56110-cluster-kubernetes-api-500-error-on-post-request' into 'master'
Improves restriction of multiple Kubernetes clusters via API Closes #56110 See merge request gitlab-org/gitlab-ce!24251
This commit is contained in:
commit
b98f6e53f6
|
@ -0,0 +1,5 @@
|
||||||
|
---
|
||||||
|
title: Improves restriction of multiple Kubernetes clusters through API
|
||||||
|
merge_request: 24251
|
||||||
|
author:
|
||||||
|
type: fixed
|
|
@ -235,8 +235,8 @@ module API
|
||||||
forbidden! unless current_user.admin?
|
forbidden! unless current_user.admin?
|
||||||
end
|
end
|
||||||
|
|
||||||
def authorize!(action, subject = :global)
|
def authorize!(action, subject = :global, reason = nil)
|
||||||
forbidden! unless can?(current_user, action, subject)
|
forbidden!(reason) unless can?(current_user, action, subject)
|
||||||
end
|
end
|
||||||
|
|
||||||
def authorize_push_project
|
def authorize_push_project
|
||||||
|
|
|
@ -63,7 +63,7 @@ module API
|
||||||
use :create_params_ee
|
use :create_params_ee
|
||||||
end
|
end
|
||||||
post ':id/clusters/user' do
|
post ':id/clusters/user' do
|
||||||
authorize! :create_cluster, user_project
|
authorize! :add_cluster, user_project, 'Instance does not support multiple Kubernetes clusters'
|
||||||
|
|
||||||
user_cluster = ::Clusters::CreateService
|
user_cluster = ::Clusters::CreateService
|
||||||
.new(current_user, create_cluster_user_params)
|
.new(current_user, create_cluster_user_params)
|
||||||
|
|
|
@ -266,6 +266,23 @@ describe API::ProjectClusters do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context 'when user tries to add multiple clusters' do
|
||||||
|
before do
|
||||||
|
create(:cluster, :provided_by_gcp, :project,
|
||||||
|
projects: [project])
|
||||||
|
|
||||||
|
post api("/projects/#{project.id}/clusters/user", current_user), params: cluster_params
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'should respond with 403' do
|
||||||
|
expect(response).to have_gitlab_http_status(403)
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'should return an appropriate message' do
|
||||||
|
expect(json_response['message']).to include('Instance does not support multiple Kubernetes clusters')
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe 'PUT /projects/:id/clusters/:cluster_id' do
|
describe 'PUT /projects/:id/clusters/:cluster_id' do
|
||||||
|
|
Loading…
Reference in New Issue