Break circular dependencies introduced by importing common in verbs

This commit is contained in:
Joseph Schorr 2016-01-08 13:53:27 -05:00
parent 9d966c2605
commit 161475baaa
5 changed files with 57 additions and 51 deletions

View file

@ -24,6 +24,7 @@ from buildtrigger.customhandler import CustomBuildTrigger
from buildtrigger.triggerutil import TriggerProviderException
from data import model
from data.database import db
from endpoints.api.discovery import swagger_route_data
from endpoints.common import common_login, render_page_template, route_show_if, param_required
from endpoints.csrf import csrf_protect, generate_csrf_token, verify_csrf
from endpoints.decorators import anon_protect, anon_allowed
@ -38,6 +39,20 @@ from util.useremails import send_email_changed
_route_data = None
def _get_route_data():
global _route_data
if _route_data:
return _route_data
_route_data = swagger_route_data(include_internal=True, compact=True)
return _route_data
def render_page_template_with_routedata(name, *args, **kwargs):
return render_page_template(name, _get_route_data(), *args, **kwargs)
# Capture the unverified SSL errors.
logger = logging.getLogger(__name__)
logging.captureWarnings(True)
@ -51,17 +66,17 @@ JWT_ISSUER = app.config.get('JWT_AUTH_TOKEN_ISSUER')
@web.route('/', methods=['GET'], defaults={'path': ''})
@no_cache
def index(path, **kwargs):
return render_page_template('index.html', **kwargs)
return render_page_template_with_routedata('index.html', **kwargs)
@web.route('/500', methods=['GET'])
def internal_error_display():
return render_page_template('500.html')
return render_page_template_with_routedata('500.html')
@web.errorhandler(404)
@web.route('/404', methods=['GET'])
def not_found_error_display(e = None):
resp = render_page_template('404.html')
resp = render_page_template_with_routedata('404.html')
resp.status_code = 404
return resp
@ -265,19 +280,19 @@ def dbrevision_health():
@web.route('/tos', methods=['GET'])
@no_cache
def tos():
return render_page_template('tos.html')
return render_page_template_with_routedata('tos.html')
@web.route('/disclaimer', methods=['GET'])
@no_cache
def disclaimer():
return render_page_template('disclaimer.html')
return render_page_template_with_routedata('disclaimer.html')
@web.route('/privacy', methods=['GET'])
@no_cache
def privacy():
return render_page_template('privacy.html')
return render_page_template_with_routedata('privacy.html')
@web.route('/robots.txt', methods=['GET'])
@ -352,7 +367,7 @@ def confirm_repo_email():
try:
record = model.repository.confirm_email_authorization_for_repo(code)
except model.DataModelException as ex:
return render_page_template('confirmerror.html', error_message=ex.message)
return render_page_template_with_routedata('confirmerror.html', error_message=ex.message)
message = """
Your E-mail address has been authorized to receive notifications for repository
@ -361,7 +376,7 @@ def confirm_repo_email():
record.repository.namespace_user.username, record.repository.name,
record.repository.namespace_user.username, record.repository.name)
return render_page_template('message.html', message=message)
return render_page_template_with_routedata('message.html', message=message)
@web.route('/confirm', methods=['GET'])
@ -375,7 +390,7 @@ def confirm_email():
try:
user, new_email, old_email = model.user.confirm_user_email(code)
except model.DataModelException as ex:
return render_page_template('confirmerror.html', error_message=ex.message)
return render_page_template_with_routedata('confirmerror.html', error_message=ex.message)
if new_email:
send_email_changed(user.username, old_email, new_email)
@ -467,9 +482,9 @@ def oauth_local_handler():
return
if not request.args.get('scope'):
return render_page_template("message.html", message="Authorization canceled")
return render_page_template_with_routedata("message.html", message="Authorization canceled")
else:
return render_page_template("generatedtoken.html")
return render_page_template_with_routedata("generatedtoken.html")
@web.route('/oauth/denyapp', methods=['POST'])
@ -533,12 +548,12 @@ def request_authorization_code():
# Show the authorization page.
has_dangerous_scopes = any([check_scope['dangerous'] for check_scope in scope_info])
return render_page_template('oauthorize.html', scopes=scope_info,
has_dangerous_scopes=has_dangerous_scopes,
application=oauth_app_view,
enumerate=enumerate, client_id=client_id,
redirect_uri=redirect_uri, scope=scope,
csrf_token_val=generate_csrf_token())
return render_page_template_with_routedata('oauthorize.html', scopes=scope_info,
has_dangerous_scopes=has_dangerous_scopes,
application=oauth_app_view,
enumerate=enumerate, client_id=client_id,
redirect_uri=redirect_uri, scope=scope,
csrf_token_val=generate_csrf_token())
if response_type == 'token':
return provider.get_token_response(response_type, client_id, redirect_uri, scope=scope)