Full add public repository support.

This commit is contained in:
yackob03 2013-09-28 00:05:32 -04:00
parent d50a5d83f8
commit b718dbc6e3
5 changed files with 39 additions and 32 deletions

View file

@ -76,16 +76,16 @@ def match_repos_api(prefix):
@app.route('/api/repository/', methods=['GET'])
@login_required
def list_repos_api():
def repo_view(repo_perm):
def repo_view(repo_obj):
return {
'namespace': repo_perm.repository.namespace,
'name': repo_perm.repository.name,
'role': repo_perm.role.name,
'description': repo_perm.repository.description,
'namespace': repo_obj.namespace,
'name': repo_obj.name,
'description': repo_obj.description,
}
username = current_user.db_user.username
repos = [repo_view(repo)
for repo in model.get_user_repositories(current_user.db_user)]
for repo in model.get_visible_repositories(username)]
response = {
'repositories': repos
}
@ -136,7 +136,7 @@ def get_repo_api(namespace, repository):
}
permission = ReadRepositoryPermission(namespace, repository)
if permission.can():
if permission.can() or model.repository_is_public(namespace, repository):
repo = model.get_repository(namespace, repository)
if repo:
tags = model.list_repository_tags(namespace, repository)
@ -168,7 +168,7 @@ def role_view(repo_perm_obj):
@parse_repository_name
def list_tag_images(namespace, repository, tag):
permission = ReadRepositoryPermission(namespace, repository)
if permission.can():
if permission.can() or model.repository_is_public(namespace, repository):
images = model.get_tag_images(namespace, repository, tag)
return jsonify({