Commit 715a8cfa authored by Kamil Trzcinski's avatar Kamil Trzcinski

Fix authentication service

parent 46cc04ce
...@@ -61,6 +61,7 @@ class Ability ...@@ -61,6 +61,7 @@ class Ability
:read_merge_request, :read_merge_request,
:read_note, :read_note,
:read_commit_status, :read_commit_status,
:read_container_registry,
:download_code :download_code
] ]
......
module Auth module Auth
class ContainerRegistryAuthenticationService < BaseService class ContainerRegistryAuthenticationService < BaseService
AUDIENCE = 'container_registry'
def execute def execute
return error('not found', 404) unless registry.enabled
if params[:offline_token] if params[:offline_token]
return error('forbidden', 403) unless current_user return error('forbidden', 403) unless current_user
end end
...@@ -52,9 +56,11 @@ module Auth ...@@ -52,9 +56,11 @@ module Auth
end end
def can_access?(requested_project, requested_action) def can_access?(requested_project, requested_action)
return false unless requested_project.container_registry_enabled?
case requested_action case requested_action
when 'pull' when 'pull'
requested_project.public? || requested_project == project || can?(current_user, :read_container_registry, requested_project) requested_project == project || can?(current_user, :read_container_registry, requested_project)
when 'push' when 'push'
requested_project == project || can?(current_user, :create_container_registry, requested_project) requested_project == project || can?(current_user, :create_container_registry, requested_project)
else else
......
...@@ -7,6 +7,7 @@ describe Auth::ContainerRegistryAuthenticationService, services: true do ...@@ -7,6 +7,7 @@ describe Auth::ContainerRegistryAuthenticationService, services: true do
let(:rsa_key) { OpenSSL::PKey::RSA.generate(512) } let(:rsa_key) { OpenSSL::PKey::RSA.generate(512) }
let(:registry_settings) do let(:registry_settings) do
{ {
enabled: true,
issuer: 'rspec', issuer: 'rspec',
key: nil key: nil
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment