Advertisement
Guest User

Untitled

a guest
Jul 19th, 2016
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.47 KB | None | 0 0
  1. __author__ = 'dunice'
  2.  
  3. from db import db
  4. from datetime import datetime
  5. from _site.models import User
  6. from hashlib import md5
  7. from signals import user_created_or_updated
  8.  
  9.  
  10. def change_password(id, password):
  11. ''' Change password
  12. return None on success otherwise error format {'reason': 'description'} '''
  13.  
  14. error = dict()
  15. celery_params = dict()
  16. try:
  17. user = db.session.query(User).get(id)
  18. user.password = md5(password).hexdigest()
  19. celery_params.update(email=user.email, user_password=user.password)
  20. except:
  21. error['db_error'] = 'password wasn\'t changed'
  22. return error
  23. db.session.commit()
  24. user_created_or_updated.send(celery_params)
  25. return None
  26.  
  27.  
  28. def verify_token(token):
  29. ''' Check token expire time
  30. return None on success otherwise error format {'reason': 'description'} '''
  31.  
  32. error = dict()
  33.  
  34. try:
  35. db_res = db.session.query(User).filter(User.password_restore_key == token)
  36.  
  37. if (db_res.count() < 1):
  38. error['token_non_exist'] = 'token doesn\'t exist'
  39. return error
  40.  
  41. user = db_res.first()
  42.  
  43. expireTime = user.password_restore_key_time
  44. if(expireTime == None):
  45. error['token_expire_time'] = 'token time is expired'
  46. return error
  47.  
  48. except:
  49. error.update({'db_error': 'token is not valid' })
  50.  
  51. currentTime = datetime.now()
  52. if (currentTime > expireTime):
  53. error['token_expire_time'] = 'token time is expired'
  54. return error
  55.  
  56. return None
  57.  
  58.  
  59. def reset_token(token):
  60. ''' Reset token and token expire time
  61. return None on success otherwise error format {'reason': 'description'} '''
  62.  
  63. error = dict()
  64.  
  65. try:
  66. db_res = db.session.query(User).filter(User.password_restore_key == token)
  67.  
  68. if (db_res.count() < 1):
  69. error['token_non_exist'] = 'nothing to reset'
  70. return error
  71.  
  72. user = db_res.first()
  73. user.password_restore_key = None
  74. user.password_restore_key_time = None
  75.  
  76. except:
  77. error['db_error'] = 'SQL Alchemy error'
  78. return error
  79.  
  80. db.session.commit()
  81.  
  82. return None
  83.  
  84.  
  85. def get_user_id_by_token(token):
  86. ''' Get user id by token
  87. return user id on success otherwise None '''
  88.  
  89. try:
  90. db_res = db.session.query(User).filter(User.password_restore_key == token)
  91.  
  92. if (db_res.count() < 1):
  93. return None
  94.  
  95. user = db_res.first()
  96.  
  97. except:
  98. return None
  99.  
  100. return user.id
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement