Full add public repository support.
This commit is contained in:
parent
d50a5d83f8
commit
b718dbc6e3
5 changed files with 39 additions and 32 deletions
|
@ -80,14 +80,14 @@ def set_cache_headers(f):
|
|||
@set_cache_headers
|
||||
def get_image_layer(namespace, repository, image_id, headers):
|
||||
permission = ReadRepositoryPermission(namespace, repository)
|
||||
if not permission.can():
|
||||
abort(403)
|
||||
if permission.can() or model.repository_is_public(namespace, repository):
|
||||
try:
|
||||
return Response(store.stream_read(store.image_layer_path(
|
||||
namespace, repository, image_id)), headers=headers)
|
||||
except IOError:
|
||||
abort(404) #'Image not found', 404)
|
||||
|
||||
try:
|
||||
return Response(store.stream_read(store.image_layer_path(
|
||||
namespace, repository, image_id)), headers=headers)
|
||||
except IOError:
|
||||
abort(404) #'Image not found', 404)
|
||||
abort(403)
|
||||
|
||||
|
||||
@app.route('/v1/images/<image_id>/layer', methods=['PUT'])
|
||||
|
@ -182,7 +182,8 @@ def put_image_checksum(namespace, repository, image_id):
|
|||
@set_cache_headers
|
||||
def get_image_json(namespace, repository, image_id, headers):
|
||||
permission = ReadRepositoryPermission(namespace, repository)
|
||||
if not permission.can():
|
||||
if (not permission.can() and not
|
||||
model.repository_is_public(namespace, repository)):
|
||||
abort(403)
|
||||
|
||||
try:
|
||||
|
@ -211,7 +212,8 @@ def get_image_json(namespace, repository, image_id, headers):
|
|||
@set_cache_headers
|
||||
def get_image_ancestry(namespace, repository, image_id, headers):
|
||||
permission = ReadRepositoryPermission(namespace, repository)
|
||||
if not permission.can():
|
||||
if (not permission.can() and not
|
||||
model.repository_is_public(namespace, repository)):
|
||||
abort(403)
|
||||
|
||||
try:
|
||||
|
|
Reference in a new issue