diff --git a/endpoints/web.py b/endpoints/web.py index dcfd81d5a..b31507bb9 100644 --- a/endpoints/web.py +++ b/endpoints/web.py @@ -20,8 +20,9 @@ from endpoints.common import common_login logger = logging.getLogger(__name__) -def render_page_template(name): - return make_response(render_template(name, route_data=get_route_data())) +def render_page_template(name, **kwargs): + return make_response(render_template(name, route_data=get_route_data(), + **kwargs)) @app.route('/', methods=['GET'], defaults={'path': ''}) @@ -184,6 +185,10 @@ def get_github_user(token): @app.route('/oauth2/github/callback', methods=['GET']) def github_oauth_callback(): + error = request.args.get('error', None) + if error: + return render_page_template('githuberror.html', error_message=error) + token = exchange_github_code_for_token(request.args.get('code')) user_data = get_github_user(token) @@ -193,6 +198,10 @@ def github_oauth_callback(): v3_media_type = { 'Accept': 'application/vnd.github.v3' } + + token_param = { + 'access_token': token, + } get_email = requests.get(app.config['GITHUB_USER_EMAILS'], params=token_param, headers=v3_media_type) @@ -235,6 +244,7 @@ def github_oauth_attach(): github_id = user_data['id'] user_obj = current_user.db_user() model.attach_federated_login(user_obj, 'github', github_id) + return redirect(url_for('user')) @app.route('/confirm', methods=['GET']) diff --git a/static/js/controllers.js b/static/js/controllers.js index e824565ef..2464d1257 100644 --- a/static/js/controllers.js +++ b/static/js/controllers.js @@ -904,6 +904,8 @@ function UserAdminCtrl($scope, $timeout, $location, ApiService, PlanService, Use $scope.changePasswordSuccess = false; $scope.convertStep = 0; $scope.org = {}; + $scope.githubRedirectUri = KeyService.githubRedirectUri; + $scope.githubClientId = KeyService.githubClientId; $('.form-change-pw').popover(); diff --git a/static/partials/user-admin.html b/static/partials/user-admin.html index 7080e3723..862a24426 100644 --- a/static/partials/user-admin.html +++ b/static/partials/user-admin.html @@ -30,8 +30,7 @@