Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- __author__ = 'dunice'
- from db import db
- from datetime import datetime
- from _site.models import User
- from hashlib import md5
- from signals import user_created_or_updated
- def change_password(id, password):
- ''' Change password
- return None on success otherwise error format {'reason': 'description'} '''
- error = dict()
- celery_params = dict()
- try:
- user = db.session.query(User).get(id)
- user.password = md5(password).hexdigest()
- celery_params.update(email=user.email, user_password=user.password)
- except:
- error['db_error'] = 'password wasn\'t changed'
- return error
- db.session.commit()
- user_created_or_updated.send(celery_params)
- return None
- def verify_token(token):
- ''' Check token expire time
- return None on success otherwise error format {'reason': 'description'} '''
- error = dict()
- try:
- db_res = db.session.query(User).filter(User.password_restore_key == token)
- if (db_res.count() < 1):
- error['token_non_exist'] = 'token doesn\'t exist'
- return error
- user = db_res.first()
- expireTime = user.password_restore_key_time
- if(expireTime == None):
- error['token_expire_time'] = 'token time is expired'
- return error
- except:
- error.update({'db_error': 'token is not valid' })
- currentTime = datetime.now()
- if (currentTime > expireTime):
- error['token_expire_time'] = 'token time is expired'
- return error
- return None
- def reset_token(token):
- ''' Reset token and token expire time
- return None on success otherwise error format {'reason': 'description'} '''
- error = dict()
- try:
- db_res = db.session.query(User).filter(User.password_restore_key == token)
- if (db_res.count() < 1):
- error['token_non_exist'] = 'nothing to reset'
- return error
- user = db_res.first()
- user.password_restore_key = None
- user.password_restore_key_time = None
- except:
- error['db_error'] = 'SQL Alchemy error'
- return error
- db.session.commit()
- return None
- def get_user_id_by_token(token):
- ''' Get user id by token
- return user id on success otherwise None '''
- try:
- db_res = db.session.query(User).filter(User.password_restore_key == token)
- if (db_res.count() < 1):
- return None
- user = db_res.first()
- except:
- return None
- return user.id
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement