def reset_password(token):
    """View function that handles a reset password request."""

    expired, invalid, user = reset_password_token_status(token)

    if not user or invalid:
        invalid = True
        do_flash(*get_message('INVALID_RESET_PASSWORD_TOKEN'))

    if expired:
        send_reset_password_instructions(user)
        do_flash(*get_message('PASSWORD_RESET_EXPIRED', email=user.email,
                              within=_security.reset_password_within))
    if invalid or expired:
        return redirect(url_for('forgot_password'))

    form = _security.reset_password_form()

    if form.validate_on_submit():
        after_this_request(_commit)
        update_password(user, form.password.data)
        do_flash(*get_message('PASSWORD_RESET'))
        return redirect(get_url(_security.post_reset_view) or
                        get_url(_security.login_url))

    return _security.render_template(
        config_value('RESET_PASSWORD_TEMPLATE'),
        reset_password_form=form,
        reset_password_token=token,
        **_ctx('reset_password')
    )
def reset_password ( token ) : expired , invalid , user = reset_password_token_status ( token ) if not user or invalid : invalid = True do_flash ( * get_message ( 'INVALID_RESET_PASSWORD_TOKEN' ) ) if expired : send_reset_password_instructions ( user ) do_flash ( * get_message ( 'PASSWORD_RESET_EXPIRED' , email = user . email , within = _security . reset_password_within ) ) if invalid or expired : return redirect ( url_for ( 'forgot_password' ) ) form = _security . reset_password_form ( ) if form . validate_on_submit ( ) : after_this_request ( _commit ) update_password ( user , form . password . data ) do_flash ( * get_message ( 'PASSWORD_RESET' ) ) return redirect ( get_url ( _security . post_reset_view ) or get_url ( _security . login_url ) ) return _security . render_template ( config_value ( 'RESET_PASSWORD_TEMPLATE' ) , reset_password_form = form , reset_password_token = token , ** _ctx ( 'reset_password' ) )
View function that handles a reset password request.