def update(self): request = self.request passcode = request.params.get("passcode") self.principal = principal = passwordTool.get_principal(passcode) if principal is not None and passwordTool.can_change_password(principal.uri): self.passcode = passcode self.title = principal.name or principal.login else: self.message(_("Passcode is invalid."), "warning") raise HTTPFound(location="%s/resetpassword.html" % request.application_url) super(ResetPasswordForm, self).update()
def update(self): request = self.request passcode = request.subpath[0] self.principal = principal = passwordTool.get_principal(passcode) if principal is not None and \ passwordTool.can_change_password(principal): self.passcode = passcode self.title = principal.name or principal.login else: self.message(_("Passcode is invalid."), 'warning') raise HTTPFound( location='%s/resetpassword.html'%request.application_url) super(ResetPasswordForm, self).update()
def changePassword(self): data, errors = self.extract() if errors: self.message(errors, "form-error") else: principal = passwordTool.get_principal(self.passcode) passwordTool.change_password(self.passcode, data["password"]) self.request.registry.notify(PrincipalPasswordChangedEvent(principal)) # check if principal can be authenticated info = authService.authenticate_principal(principal) if info.status: headers = security.remember(self.request, self.principal.uri) else: headers = [] self.message(_("You have successfully changed your password."), "success") raise HTTPFound(headers=headers, location=self.request.application_url)