def resolve_user_info(self): """Return the information for the user and current request. Returns: A tuple of (UserData, bool) including the UserData of the actor and a bool indicating whether or not this is for a password reset or a normal change of password. Returns (None, False) if no valid user is resolved. """ user_data = _resolve_user_in_https_frame(self) reset_token_value = self.request_string("reset_token", default="") is_password_reset = False if not user_data: # Try to resolve the user from a reset token, if nobody is # logged in. reset_token = PasswordResetToken.for_value(reset_token_value) if reset_token: user_data = user_models.UserData.get_from_user_id( reset_token.user_id) if reset_token.is_valid(user_data): is_password_reset = True else: user_data = None return (user_data, is_password_reset)
def get(self): reset_token_value = self.request_string("token", default="") user_data = PasswordResetToken.get_user_for_value( reset_token_value, UserData.get_from_user_id) if not user_data: self.redirect("/") return self.render_jinja2_template('password-reset.html', { 'reset_token': reset_token_value, })
def get(self): reset_token_value = self.request_string("token", default="") user_data = PasswordResetToken.get_user_for_value( reset_token_value, UserData.get_from_user_id) if not user_data: self.redirect("/") return self.render_jinja2_template( 'password-reset.html', { 'reset_token': reset_token_value, })
def build_link(user_data): pw_reset_token = PasswordResetToken.for_user(user_data) if not pw_reset_token: raise Exception("Unable to build password reset link for user") return util.absolute_url("/pwreset?token=%s" % urllib.quote_plus(pw_reset_token.value))