Merge pull request #2170 from coreos-inc/password-reset

Fix small bugs around account recovery and user settings redirection
This commit is contained in:
josephschorr 2016-11-28 19:51:23 -05:00 committed by GitHub
commit b7aac159ae
3 changed files with 15 additions and 14 deletions

View file

@ -15,7 +15,6 @@ from endpoints.web import render_page_template_with_routedata
from util.security.jwtutil import decode, InvalidTokenError
from util.validation import generate_valid_usernames
logger = logging.getLogger(__name__)
client = app.config['HTTPCLIENT']
oauthlogin = Blueprint('oauthlogin', __name__)
@ -229,7 +228,7 @@ def google_oauth_attach():
username, app.config['REGISTRY_TITLE_SHORT'])
return render_ologin_error('Google', err)
return redirect(url_for('web.user'))
return redirect(url_for('web.user_view', path=user_obj.username, tab='external'))
@oauthlogin.route('/github/callback/attach', methods=['GET'])
@ -258,7 +257,7 @@ def github_oauth_attach():
return render_ologin_error('GitHub', err)
return redirect(url_for('web.user'))
return redirect(url_for('web.user_view', path=user_obj.username, tab='external'))
def decode_user_jwt(token, oidc_provider):
@ -326,7 +325,7 @@ def dex_oauth_attach():
try:
payload = decode_user_jwt(token, dex_login)
except jwt.InvalidTokenError:
except InvalidTokenError:
logger.exception('Exception when decoding returned JWT')
return render_ologin_error(
dex_login.public_title,
@ -344,4 +343,5 @@ def dex_oauth_attach():
app.config['REGISTRY_TITLE_SHORT'])
return render_ologin_error(dex_login.public_title, err)
return redirect(url_for('web.user'))
return redirect(url_for('web.user_view', path=user_obj.username, tab='external'))

View file

@ -126,12 +126,6 @@ def organizations():
return index('')
@web.route('/user/')
@no_cache
def user():
return index('')
@web.route('/superuser/')
@no_cache
@route_show_if(features.SUPER_USERS)
@ -405,8 +399,10 @@ def confirm_email():
common_login(user)
if model.user.has_user_prompts(user):
return redirect(url_for('web.updateuser'))
elif new_email:
return redirect(url_for('web.user_view', path=user.username, tab='settings'))
else:
return redirect(url_for('web.user', tab='email') if new_email else url_for('web.index'))
return redirect(url_for('web.index'))
@web.route('/recovery', methods=['GET'])
@ -418,7 +414,7 @@ def confirm_recovery():
if user is not None:
common_login(user)
return redirect(url_for('web.user'))
return redirect(url_for('web.user_view', path=user.username, tab='settings', action='password'))
else:
message = 'Invalid recovery code: This code is invalid or may have already been used.'
return render_page_template_with_routedata('message.html', message=message)

View file

@ -43,9 +43,14 @@
$scope.context.viewuser = user;
$scope.viewuser = user;
// Load the repositories.
$timeout(function() {
// Load the repositories.
loadRepositories();
// Show the password change dialog if immediately after an account recovery.
if ($routeParams.action == 'password' && UserService.isNamespaceAdmin(username)) {
$scope.showChangePassword();
}
}, 10);
});
};