def set_password(context, request, success_msg=u"You've reset your password successfully."): form = Form(SetPasswordSchema(), buttons=('submit',)) rendered_form = None if 'submit' in request.POST: try: appstruct = form.validate(request.POST.items()) except ValidationFailure, e: request.session.flash(u"There was an error.", 'error') rendered_form = e.render() else: token = appstruct['token'] email = appstruct['email'] user = _find_user(email) if (user is not None and validate_token(user, token) and token == user.confirm_token): password = appstruct['password'] user.password = get_principals().hash_password(password) user.confirm_token = None headers = remember(request, user.name) location = (appstruct['continue_to'] or resource_url(context, request)) request.session.flash(success_msg, 'success') return HTTPFound(location=location, headers=headers) else: request.session.flash( u"Your password reset token may have expired.", 'error')
def set_password(context, request, success_msg=_(u"You've reset your password successfully.")): form = Form(SetPasswordSchema(), buttons=(Button('submit', _(u'Submit')), )) rendered_form = None if 'submit' in request.POST: try: appstruct = form.validate(request.POST.items()) except ValidationFailure, e: request.session.flash(_(u"There was an error."), 'error') rendered_form = e.render() else: token = appstruct['token'] email = appstruct['email'] user = _find_user(email) if (user is not None and validate_token(user, token) and token == user.confirm_token): password = appstruct['password'] user.password = get_principals().hash_password(password) user.confirm_token = None headers = remember(request, user.name) location = (appstruct['continue_to'] or resource_url(context, request)) request.session.flash(success_msg, 'success') return HTTPFound(location=location, headers=headers) else: request.session.flash( _(u"Your password reset token may have expired."), 'error')
def set_password(context, request, success_msg=_(u"You have reset your password.")): """ Set password view. Displays the set password form and handles its form submission. :param context: Current context :type context: :class:`kotti.resources.Content` :param request: Current request :type request: :class:`kotti.request.Request` :param success_msg: Message to display on successful submission handling :type success_msg: str or TranslationString :result: Redirect response or dictionary passed to the template for rendering. :rtype: pyramid.httpexceptions.HTTPFound or dict """ form = Form(SetPasswordSchema(), buttons=(Button("submit", _(u"Set password")),)) rendered_form = None if "submit" in request.POST: try: appstruct = form.validate(request.POST.items()) except ValidationFailure as e: rendered_form = e.render() else: token = appstruct["token"] email = appstruct["email"] user = _find_user(email) if user is not None and validate_token(user, token) and token == user.confirm_token and user.active: password = appstruct["password"] user.password = get_principals().hash_password(password) user.confirm_token = None headers = remember(request, user.name) user.last_login_date = datetime.now() location = appstruct["continue_to"] or resource_url(context, request) request.session.flash(success_msg, "success") return HTTPFound(location=location, headers=headers) else: request.session.flash(_(u"Your password reset token may have expired."), "error") if rendered_form is None: rendered_form = form.render(request.params) api = template_api( context, request, page_title=_(u"Reset your password - ${title}.", mapping=dict(title=context.title)) ) return {"api": api, "form": rendered_form}
def set_password(context, request, success_msg=_(u"You've reset your password successfully.")): """ Set password view. Displays the set password form and handles its form submission. :param success_msg: Message to display on successful submission handling :type success_msg: str or TranslationString :result: Redirect response or dictionary passed to the template for rendering. :rtype: pyramid.httpexceptions.HTTPFound or dict """ form = Form(SetPasswordSchema(), buttons=(Button('submit', _(u'Submit')), )) rendered_form = None if 'submit' in request.POST: try: appstruct = form.validate(request.POST.items()) except ValidationFailure, e: request.session.flash(_(u"There was an error."), 'error') rendered_form = e.render() else: token = appstruct['token'] email = appstruct['email'] user = _find_user(email) if (user is not None and validate_token(user, token) and token == user.confirm_token and user.active): password = appstruct['password'] user.password = get_principals().hash_password(password) user.confirm_token = None headers = remember(request, user.name) user.last_login_date = datetime.now() location = (appstruct['continue_to'] or resource_url(context, request)) request.session.flash(success_msg, 'success') return HTTPFound(location=location, headers=headers) else: request.session.flash( _(u"Your password reset token may have expired."), 'error')
def set_password(context, request, success_msg=_(u"You have reset your password.")): """ Set password view. Displays the set password form and handles its form submission. :param success_msg: Message to display on successful submission handling :type success_msg: str or TranslationString :result: Redirect response or dictionary passed to the template for rendering. :rtype: pyramid.httpexceptions.HTTPFound or dict """ form = Form(SetPasswordSchema(), buttons=(Button('submit', _(u'Submit')),)) rendered_form = None if 'submit' in request.POST: try: appstruct = form.validate(request.POST.items()) except ValidationFailure, e: request.session.flash(_(u"There was an error."), 'error') rendered_form = e.render() else: token = appstruct['token'] email = appstruct['email'] user = _find_user(email) if (user is not None and validate_token(user, token) and token == user.confirm_token and user.active): password = appstruct['password'] user.password = get_principals().hash_password(password) user.confirm_token = None headers = remember(request, user.name) user.last_login_date = datetime.now() location = (appstruct['continue_to'] or resource_url(context, request)) request.session.flash(success_msg, 'success') return HTTPFound(location=location, headers=headers) else: request.session.flash( _(u"Your password reset token may have expired."), 'error')
def set_password(context, request, success_msg=_(u"You've reset your password successfully.")): form = Form(SetPasswordSchema(), buttons=(Button("submit", _(u"Submit")),)) rendered_form = None if "submit" in request.POST: try: appstruct = form.validate(request.POST.items()) except ValidationFailure, e: request.session.flash(_(u"There was an error."), "error") rendered_form = e.render() else: token = appstruct["token"] email = appstruct["email"] user = _find_user(email) if user is not None and validate_token(user, token) and token == user.confirm_token: password = appstruct["password"] user.password = get_principals().hash_password(password) user.confirm_token = None headers = remember(request, user.name) location = appstruct["continue_to"] or resource_url(context, request) request.session.flash(success_msg, "success") return HTTPFound(location=location, headers=headers) else: request.session.flash(_(u"Your password reset token may have expired."), "error")
def set_password(context, request, success_msg=_("You have reset your password.")): """ Set password view. Displays the set password form and handles its form submission. :param context: Current context :type context: :class:`kotti.resources.Content` :param request: Current request :type request: :class:`kotti.request.Request` :param success_msg: Message to display on successful submission handling :type success_msg: str or TranslationString :result: Redirect response or dictionary passed to the template for rendering. :rtype: pyramid.httpexceptions.HTTPFound or dict """ form = Form(SetPasswordSchema(), buttons=(Button('submit', _('Set password')), )) rendered_form = None if 'submit' in request.POST: try: appstruct = form.validate(list(request.POST.items())) except ValidationFailure as e: rendered_form = e.render() else: token = appstruct['token'] email = appstruct['email'] user = _find_user(email) if (user is not None and validate_token(user, token) and token == user.confirm_token and user.active): password = appstruct['password'] user.password = get_principals().hash_password(password) user.confirm_token = None headers = remember(request, user.name) user.last_login_date = datetime.now() location = (appstruct['continue_to'] or resource_url(context, request)) request.session.flash(success_msg, 'success') return HTTPFound(location=location, headers=headers) else: request.session.flash( _("Your password reset token may have expired."), 'error') if rendered_form is None: rendered_form = form.render(request.params) api = template_api( context, request, page_title=_("Reset your password - ${title}.", mapping=dict(title=context.title)), ) return { 'api': api, 'form': rendered_form, }