Have all error pages be rendered by Angular

Fixes #2198

Fixes https://www.pivotaltracker.com/story/show/135724483
This commit is contained in:
Joseph Schorr 2016-12-07 17:13:17 -05:00
parent 0aa6e6cd58
commit c06bba38de
13 changed files with 78 additions and 116 deletions

View file

@ -11,7 +11,7 @@ from app import app, analytics, get_app_url, github_login, google_login, dex_log
from auth.process import require_session_login
from data import model
from endpoints.common import common_login, route_show_if
from endpoints.web import render_page_template_with_routedata
from endpoints.web import index
from util.security.jwtutil import decode, InvalidTokenError
from util.validation import generate_valid_usernames
@ -20,15 +20,17 @@ client = app.config['HTTPCLIENT']
oauthlogin = Blueprint('oauthlogin', __name__)
def render_ologin_error(service_name,
error_message='Could not load user data. The token may have expired.'):
user_creation = features.USER_CREATION and features.DIRECT_LOGIN
return render_page_template_with_routedata('ologinerror.html',
service_name=service_name,
error_message=error_message,
service_url=get_app_url(),
user_creation=user_creation)
def render_ologin_error(service_name, error_message=None, register_redirect=False):
user_creation = bool(features.USER_CREATION and features.DIRECT_LOGIN)
error_info = {
'reason': 'ologinerror',
'service_name': service_name,
'error_message': error_message or 'Could not load user data. The token may have expired',
'service_url': get_app_url(),
'user_creation': user_creation,
'register_redirect': register_redirect,
}
return index('', error_info=error_info)
def get_user(service, token):
token_param = {
@ -81,7 +83,7 @@ def conduct_oauth_login(service, user_id, username, email, metadata={}):
message = message + "\nPlease log in with your username and password and "
message = message + "associate your %s account to use it in the future." % (service_name, )
return render_ologin_error(service_name, message)
return render_ologin_error(service_name, message, register_redirect=True)
except model.DataModelException as ex:
return render_ologin_error(service_name, ex.message)