mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-02-05 10:53:28 -05:00
Verification flow is still to be completed. Foreign key constraint on verify codes to user table removed.
56 lines
1.6 KiB
Python
56 lines
1.6 KiB
Python
from datetime import datetime, timedelta
|
|
|
|
from app import db
|
|
from app.main.encryption import hashpw
|
|
from app.models import VerifyCodes
|
|
|
|
|
|
def add_code(user_id, code, code_type):
|
|
code = VerifyCodes(user_id=user_id,
|
|
code=hashpw(code),
|
|
code_type=code_type,
|
|
expiry_datetime=datetime.now() + timedelta(hours=1))
|
|
|
|
db.session.add(code)
|
|
db.session.commit()
|
|
return code
|
|
|
|
|
|
def get_codes(user_id, code_type=None):
|
|
if not code_type:
|
|
return VerifyCodes.query.filter_by(user_id=user_id, code_used=False).all()
|
|
return VerifyCodes.query.filter_by(user_id=user_id, code_type=code_type, code_used=False).all()
|
|
|
|
|
|
def get_code_by_code(user_id, code, code_type):
|
|
return VerifyCodes.query.filter_by(user_id=user_id, code=hashpw(code), code_type=code_type).first()
|
|
|
|
|
|
def use_code(id):
|
|
verify_code = VerifyCodes.query.get(id)
|
|
verify_code.code_used = True
|
|
db.session.add(verify_code)
|
|
db.session.commit()
|
|
|
|
|
|
def use_code_for_user_and_type(user_id, code_type):
|
|
codes = VerifyCodes.query.filter_by(user_id=user_id, code_type=code_type, code_used=False).all()
|
|
for verify_code in codes:
|
|
verify_code.code_used = True
|
|
db.session.add(verify_code)
|
|
db.session.commit()
|
|
|
|
|
|
def get_code_by_id(id):
|
|
return VerifyCodes.query.get(id)
|
|
|
|
|
|
def add_code_with_expiry(user_id, code, code_type, expiry):
|
|
code = VerifyCodes(user_id=user_id,
|
|
code=hashpw(code),
|
|
code_type=code_type,
|
|
expiry_datetime=expiry)
|
|
|
|
db.session.add(code)
|
|
db.session.commit()
|