def generate_recovery_codes_for_user(user, count=RECOVERY_CODE_COUNT): user.recovery_codes = [ RecoveryCode(code=str(uuid.uuid4()).replace('-', '')) for _ in range(count) ] session.flush() return user
def consume_recovery_code(user_id, recovery_code): code = session.query(RecoveryCode).filter( RecoveryCode.user_id == user_id, RecoveryCode.code == recovery_code, RecoveryCode.used.is_(False)).first() if not code: raise RecoveryCodeConsumptionError( 'That recovery code has already been used, ' 'or doesn\'t exist for this user') code.used = True session.flush()
def consume_recovery_code(user_id, recovery_code): code = session.query(RecoveryCode).filter( RecoveryCode.user_id == user_id, RecoveryCode.code == recovery_code, RecoveryCode.used.is_(False) ).first() if not code: raise RecoveryCodeConsumptionError( 'That recovery code has already been used, ' 'or doesn\'t exist for this user' ) code.used = True session.flush()