コード例 #1
0
ファイル: code_backup.py プロジェクト: Tangdongle/CHESS
 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()
コード例 #2
0
ファイル: code_backup.py プロジェクト: Tangdongle/CHESS
 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()