def POST(self, uid,cin, key): i = web.input() user = model.get_user_by_id(cin, uid)[0] form = self.form if form.validates(): pwd = bcrypt.hashpw(i.password, bcrypt.gensalt(BCRYPT_WLOAD)) model.update_user(cin, uid, pwd, user.email, user.privilege) raise web.seeother('/login') else: try: recovery = model.get_recovery_time(cin, userid, key)[0] t = timedelta(days=1) d1, d2 = datetime.utcnow(), datetime.utcfromtimestamp(recovery.timestamp) if d2 + t > d1: return render.passwordchange(form, user, key, d2+t) else: raise web.notfound('Link has expired') except IndexError: raise web.notfound()
def GET(self, uid, cin, key=None): r""" Retrieves UID,CIN and key from HTML GET query and uses the values to generate a page where the """ if key is not None: form = self.form try: recovery = model.get_recovery_time(cin, uid, key)[0] user = model.get_user_by_id(cin, uid)[0] t = timedelta(days=1) d1, d2 = datetime.utcnow(), datetime.utcfromtimestamp(recovery.timestamp) if d2 + t > d1: return render.passwordchange(form, user, key, d2+t) else: raise web.notfound('Link has expired') except IndexError: raise web.notfound() else: raise web.notfound()