Update user status default to INACTIVE, add email verification check in login, and set email_verified_at for admin user in seeder
This commit is contained in:
parent
4458d352a2
commit
4fa2db2a3c
@ -17,7 +17,7 @@ class User(Base):
|
||||
password: Mapped[str] = mapped_column(String(255))
|
||||
email_verified_at: Mapped[datetime | None] = mapped_column(DateTime, nullable=True)
|
||||
tenant_id: Mapped[str | None] = mapped_column(CHAR(36), nullable=True)
|
||||
status: Mapped[str] = mapped_column(String(20), default="ONBOARDING")
|
||||
status: Mapped[str] = mapped_column(String(20), default="INACTIVE")
|
||||
created_at: Mapped[datetime] = mapped_column(DateTime, default=datetime.now)
|
||||
updated_at: Mapped[datetime | None] = mapped_column(DateTime, nullable=True, onupdate=datetime.now)
|
||||
deleted_at: Mapped[datetime | None] = mapped_column(DateTime, nullable=True)
|
||||
|
||||
@ -23,6 +23,12 @@ def login(data: LoginRequest, db: Session = Depends(get_db)):
|
||||
detail={"message": "Kredensial autentikasi tidak ada atau tidak valid."},
|
||||
)
|
||||
|
||||
if user.email_verified_at is None:
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_401_UNAUTHORIZED,
|
||||
detail={"message": "Email belum diverifikasi. Silakan verifikasi email terlebih dahulu."},
|
||||
)
|
||||
|
||||
access_token = create_access_token({"sub": user.id})
|
||||
return LoginResponse(
|
||||
access_token=access_token,
|
||||
|
||||
@ -23,12 +23,15 @@ def seed_users(db, count: int = 5, tenant_ids: list[str] | None = None):
|
||||
admin = db.query(User).filter(
|
||||
(User.email == "project.pangestuyoga@gmail.com") | (User.username == "pangestu")
|
||||
).first()
|
||||
from datetime import datetime, timezone
|
||||
|
||||
if not admin:
|
||||
admin = User(
|
||||
email="project.pangestuyoga@gmail.com",
|
||||
username="pangestu",
|
||||
password=hash_password("Minimal8@"),
|
||||
status="ACTIVE",
|
||||
email_verified_at=datetime.now(timezone.utc),
|
||||
)
|
||||
db.add(admin)
|
||||
db.flush()
|
||||
|
||||
Loading…
Reference in New Issue
Block a user