Gregniuki commited on
Commit
92a1e0e
·
1 Parent(s): 3930b6b

Update auth.py

Browse files
Files changed (1) hide show
  1. auth.py +13 -9
auth.py CHANGED
@@ -56,25 +56,27 @@ def authenticate_user(db: Session, email: str, password: str):
56
 
57
  from emailx import send_verification_email, generate_verification_token
58
 
59
- def verify_email(self, verification_token: str, db: Session = Depends(get_db)):
60
- # Verify the email using the token
61
- user_email = verify_token(verification_token)
62
- if not user_email:
63
- raise HTTPException(status_code=400, detail="Invalid verification token")
64
 
65
- # Get the user by email
66
- user = get_user_by_email(db, user_email)
 
 
67
  if not user:
68
- raise HTTPException(status_code=400, detail="User not found")
69
 
70
  if user.is_verified:
71
  raise HTTPException(status_code=400, detail="Email already verified")
72
 
73
  # Mark the email as verified
74
  user.is_verified = True
 
75
  db.commit()
76
  return {"message": "Email verification successful"}
77
 
 
 
78
  def register(user: UserCreate, db: Session):
79
  # Validate email format and check for existing users
80
  db_user = get_user_by_email(db, user.email)
@@ -94,7 +96,9 @@ def register(user: UserCreate, db: Session):
94
  # verify_email(verification_token, db)
95
 
96
  # Create the user in the database
97
- user_in_db = User(email=user.email, hashed_password=hashed_password)
 
 
98
  db.add(user_in_db)
99
  db.commit()
100
  db.refresh(user_in_db)
 
56
 
57
  from emailx import send_verification_email, generate_verification_token
58
 
59
+ def get_user_by_verification_token(db: Session, verification_token: str):
60
+ return db.query(User).filter(User.email_verification_token == verification_token).first()
 
 
 
61
 
62
+ def verify_email(verification_token: str, db: Session = Depends(get_db)):
63
+ # Verify the email using the token
64
+ user = get_user_by_verification_token(db, verification_token)
65
+
66
  if not user:
67
+ raise HTTPException(status_code=400, detail="Invalid verification token")
68
 
69
  if user.is_verified:
70
  raise HTTPException(status_code=400, detail="Email already verified")
71
 
72
  # Mark the email as verified
73
  user.is_verified = True
74
+ user.email_verification_token = None # Optionally clear the verification token
75
  db.commit()
76
  return {"message": "Email verification successful"}
77
 
78
+
79
+
80
  def register(user: UserCreate, db: Session):
81
  # Validate email format and check for existing users
82
  db_user = get_user_by_email(db, user.email)
 
96
  # verify_email(verification_token, db)
97
 
98
  # Create the user in the database
99
+ # Set the email_verification_token field in the User model
100
+ user_in_db = User(email=user.email, hashed_password=hashed_password, email_verification_token=verification_token)
101
+
102
  db.add(user_in_db)
103
  db.commit()
104
  db.refresh(user_in_db)