Implemented star auth capabilities on docker registry to enable deletion of images
This commit is contained in:
parent
a210ddaa1b
commit
1cdc76f455
1 changed files with 28 additions and 6 deletions
|
@ -163,7 +163,9 @@ describe Auth::ContainerRegistryAuthenticationService do
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'disallow reporter to delete images' do
|
context 'disallow reporter to delete images' do
|
||||||
before { project.team << [current_user, :reporter] }
|
before do
|
||||||
|
project.add_reporter(current_user)
|
||||||
|
end
|
||||||
|
|
||||||
let(:current_params) do
|
let(:current_params) do
|
||||||
{ scope: "repository:#{project.path_with_namespace}:*" }
|
{ scope: "repository:#{project.path_with_namespace}:*" }
|
||||||
|
@ -230,6 +232,14 @@ describe Auth::ContainerRegistryAuthenticationService do
|
||||||
it_behaves_like 'not a container repository factory'
|
it_behaves_like 'not a container repository factory'
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context 'disallow anyone to delete images' do
|
||||||
|
let(:current_params) do
|
||||||
|
{ scope: "repository:#{project.path_with_namespace}:*" }
|
||||||
|
end
|
||||||
|
|
||||||
|
it_behaves_like 'an inaccessible'
|
||||||
|
end
|
||||||
|
|
||||||
context 'when repository name is invalid' do
|
context 'when repository name is invalid' do
|
||||||
let(:current_params) do
|
let(:current_params) do
|
||||||
{ scope: 'repository:invalid:push' }
|
{ scope: 'repository:invalid:push' }
|
||||||
|
@ -280,13 +290,25 @@ describe Auth::ContainerRegistryAuthenticationService do
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'for external user' do
|
context 'for external user' do
|
||||||
let(:current_user) { create(:user, external: true) }
|
context 'disallow anyone to pull or push images' do
|
||||||
let(:current_params) do
|
let(:current_user) { create(:user, external: true) }
|
||||||
{ scope: "repository:#{project.full_path}:pull,push,*" }
|
let(:current_params) do
|
||||||
|
{ scope: "repository:#{project.path_with_namespace}:pull,push" }
|
||||||
|
end
|
||||||
|
|
||||||
|
it_behaves_like 'an inaccessible'
|
||||||
|
it_behaves_like 'not a container repository factory'
|
||||||
end
|
end
|
||||||
|
|
||||||
it_behaves_like 'an inaccessible'
|
context 'disallow anyone to delete images' do
|
||||||
it_behaves_like 'not a container repository factory'
|
let(:current_user) { create(:user, external: true) }
|
||||||
|
let(:current_params) do
|
||||||
|
{ scope: "repository:#{project.path_with_namespace}:*" }
|
||||||
|
end
|
||||||
|
|
||||||
|
it_behaves_like 'an inaccessible'
|
||||||
|
it_behaves_like 'not a container repository factory'
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue