load project
This commit is contained in:
32
backend/app/seed.py
Normal file
32
backend/app/seed.py
Normal file
@@ -0,0 +1,32 @@
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from app.auth import get_password_hash, get_user_by_email, get_user_by_username
|
||||
from app.config import settings
|
||||
from app.models.user import User, UserRole
|
||||
|
||||
|
||||
def seed_admin_user(db: Session) -> None:
|
||||
"""Create initial admin from .env if no user with that username exists."""
|
||||
if not settings.admin_username or not settings.admin_password:
|
||||
return
|
||||
|
||||
existing = get_user_by_username(db, settings.admin_username)
|
||||
if existing:
|
||||
if existing.role != UserRole.admin:
|
||||
existing.role = UserRole.admin
|
||||
db.commit()
|
||||
return
|
||||
|
||||
email = settings.admin_email or f"{settings.admin_username}@localhost"
|
||||
if get_user_by_email(db, email):
|
||||
email = f"{settings.admin_username}.admin@localhost"
|
||||
|
||||
user = User(
|
||||
email=email,
|
||||
username=settings.admin_username,
|
||||
hashed_password=get_password_hash(settings.admin_password),
|
||||
role=UserRole.admin,
|
||||
is_active=True,
|
||||
)
|
||||
db.add(user)
|
||||
db.commit()
|
||||
Reference in New Issue
Block a user