Implement forgot password
This commit is contained in:
@@ -113,6 +113,14 @@ def activate_account(user, db):
|
||||
db.refresh(user)
|
||||
|
||||
|
||||
def deactivate_account(user, db):
|
||||
db.query(Users).filter(Users.email == user.email).update(
|
||||
{Users.status: 0, Users.forgot_password: 1}
|
||||
)
|
||||
db.commit()
|
||||
db.refresh(user)
|
||||
|
||||
|
||||
def verify_otp(data: OTPVerify, db):
|
||||
user = fetch_user_by_key(data=data, db=db)
|
||||
matching_otp = user.otp == data.otp
|
||||
@@ -123,3 +131,15 @@ def verify_otp(data: OTPVerify, db):
|
||||
return user
|
||||
else:
|
||||
raise HTTPException(status_code=400, detail="The OTP is not correct")
|
||||
|
||||
|
||||
def mark_password_reset(data, db):
|
||||
user = fetch_user_by_email(data=data, db=db)
|
||||
if user.social_id:
|
||||
raise HTTPException(
|
||||
status_code=400,
|
||||
detail="You logged in with Facebook/Google. You can't reset the password",
|
||||
)
|
||||
deactivate_account(user=user, db=db)
|
||||
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
from sqlalchemy import Column, DateTime, Enum, ForeignKey, Integer, String, Text, text
|
||||
from sqlalchemy import Column, ForeignKey, text
|
||||
from sqlalchemy.types import *
|
||||
from sqlalchemy.sql import func
|
||||
|
||||
from database import Base
|
||||
@@ -27,6 +28,7 @@ class Users(Base):
|
||||
admin_status = Column(Integer, server_default=text("0"))
|
||||
device_id = Column(Text)
|
||||
device_type = Column(Integer)
|
||||
forgot_password = Column(Integer, server_default=text("0"))
|
||||
created = Column(DateTime, nullable=False, server_default=func.now())
|
||||
updated = Column(DateTime, nullable=True, onupdate=func.now())
|
||||
|
||||
|
||||
Reference in New Issue
Block a user