def render(self): if 'submit' in self.request.params: email = self.request.params.get('email', '') user = User.by_email(self.session, email) if user: passhash = uuid.uuid4().hex date_end = datetime.now() + relativedelta(seconds=86400) # create hash entry in database with a TTL of 1 day entry = PasswordRecovery(user_id=user.id, hash=passhash, date_end=date_end) self.session.add(entry) self.session.flush() # call celery send mail task directly from celery.registry import tasks from celery.task import subtask req_task = tasks['worker_mail'] settings = self.request.registry.settings sender = 'pyvac@localhost' if 'pyvac.password.sender.mail' in settings: sender = settings['pyvac.password.sender.mail'] data = { 'sender': sender, 'target': user.email, 'subject': 'Password Recovery', 'content': """Hello, we send you this mail because you requested a password reset, to proceed please click the link below: %s Reminder, your login is: %s """ % (route_url('change_password', self.request, passhash=passhash), user.login) } subtask(req_task).delay(data=data) msg = 'Mail sent to %s for password recovery.' % user.email self.request.session.flash('info;%s' % msg) return HTTPFound(location=route_url('login', self.request)) return {}
def render(self): if 'submit' in self.request.params: email = self.request.params.get('email', '') user = User.by_email(self.session, email) if user: passhash = uuid.uuid4().hex date_end = datetime.now() + relativedelta(seconds=86400) # create hash entry in database with a TTL of 1 day entry = PasswordRecovery(user_id=user.id, hash=passhash, date_end=date_end) self.session.add(entry) self.session.flush() # call celery send mail task directly from celery.registry import tasks from celery.task import subtask req_task = tasks['worker_mail'] data = { 'sender': '*****@*****.**', 'target': user.email, 'subject': 'Password Recovery', 'content': """Hello, we send you this mail because you requested a password reset, to proceed please click the link below: %s Reminder, your login is: %s """ % (route_url('change_password', self.request, passhash=passhash), user.login) } subtask(req_task).delay(data=data) msg = 'Mail sent to %s for password recovery.' % user.email self.request.session.flash('info;%s' % msg) return HTTPFound(location=route_url('login', self.request)) return {}
def render(self): if "submit" in self.request.params: email = self.request.params.get("email", "") user = User.by_email(self.session, email) if user: passhash = uuid.uuid4().hex date_end = datetime.now() + relativedelta(seconds=86400) # create hash entry in database with a TTL of 1 day entry = PasswordRecovery(user_id=user.id, hash=passhash, date_end=date_end) self.session.add(entry) self.session.flush() # call celery send mail task directly from celery.registry import tasks from celery.task import subtask req_task = tasks["worker_mail"] data = { "sender": "*****@*****.**", "target": user.email, "subject": "Password Recovery", "content": """Hello, we send you this mail because you requested a password reset, to proceed please click the link below: %s Reminder, your login is: %s """ % (route_url("change_password", self.request, passhash=passhash), user.login), } subtask(req_task).delay(data=data) msg = "Mail sent to %s for password recovery." % user.email self.request.session.flash("info;%s" % msg) return HTTPFound(location=route_url("login", self.request)) return {}