Merge pull request #2850 from coreos-inc/jpmc-features
Features for JPMC
This commit is contained in:
commit
46e1bd9c75
8 changed files with 37 additions and 10 deletions
|
@ -8,6 +8,8 @@ import os
|
|||
from flask import request
|
||||
from urlparse import urlparse
|
||||
|
||||
import features
|
||||
|
||||
from app import userfiles as user_files, build_logs, log_archive, dockerfile_build_queue
|
||||
from auth.permissions import (ReadRepositoryPermission, ModifyRepositoryPermission,
|
||||
AdministerRepositoryPermission, AdministerOrganizationPermission,
|
||||
|
@ -147,7 +149,7 @@ def build_status_view(build_obj):
|
|||
'error': error,
|
||||
}
|
||||
|
||||
if can_write:
|
||||
if can_write or features.READER_BUILD_LOGS:
|
||||
if build_obj.resource_key is not None:
|
||||
resp['archive_url'] = user_files.get_file_url(build_obj.resource_key, requires_cors=True)
|
||||
elif job_config.get('archive_url', None):
|
||||
|
@ -424,11 +426,15 @@ def get_logs_or_log_url(build):
|
|||
@path_param('build_uuid', 'The UUID of the build')
|
||||
class RepositoryBuildLogs(RepositoryParamResource):
|
||||
""" Resource for loading repository build logs. """
|
||||
@require_repo_write
|
||||
@require_repo_read
|
||||
@nickname('getRepoBuildLogs')
|
||||
@disallow_for_app_repositories
|
||||
def get(self, namespace, repository, build_uuid):
|
||||
""" Return the build logs for the build specified by the build uuid. """
|
||||
can_write = ModifyRepositoryPermission(namespace, repository).can()
|
||||
if not features.READER_BUILD_LOGS and not can_write:
|
||||
raise Unauthorized()
|
||||
|
||||
build = model.build.get_repository_build(build_uuid)
|
||||
if (not build or build.repository.name != repository or
|
||||
build.repository.namespace_user.username != namespace):
|
||||
|
|
|
@ -79,6 +79,7 @@ def user_view(user, previous_username=None):
|
|||
'name': o.username,
|
||||
'avatar': avatar.get_data_for_org(o),
|
||||
'can_create_repo': CreateRepositoryPermission(o.username).can(),
|
||||
'public': o.username in app.config.get('PUBLIC_NAMESPACES', []),
|
||||
}
|
||||
|
||||
if user_admin:
|
||||
|
@ -89,7 +90,13 @@ def user_view(user, previous_username=None):
|
|||
|
||||
return org_response
|
||||
|
||||
organizations = model.organization.get_user_organizations(user.username)
|
||||
# Retrieve the organizations for the user.
|
||||
organizations = list(model.organization.get_user_organizations(user.username))
|
||||
|
||||
# Add any public namespaces.
|
||||
public_namespaces = app.config.get('PUBLIC_NAMESPACES', [])
|
||||
if public_namespaces:
|
||||
organizations.extend([model.user.get_namespace_user(ns) for ns in public_namespaces])
|
||||
|
||||
def login_view(login):
|
||||
try:
|
||||
|
|
Reference in a new issue