Files
rengine/backend/app/utils/helpers.py
T
2026-01-26 15:02:53 +05:30

26 lines
898 B
Python

from sqlmodel import select
from app.config import settings
from app.core.database import async_db_session
from app.core.logger import logger
from app.core.security import hash_password
from app.models.user import User
async def create_initial_admin() -> None:
"""Create initial admin user if no users exist."""
async with async_db_session() as session:
result = await session.execute(select(User).limit(1))
existing_user = result.scalar_one_or_none()
if existing_user is None:
admin = User(
email=settings.ADMIN_EMAIL,
username=settings.ADMIN_USERNAME,
hashed_password=hash_password(settings.ADMIN_PASSWORD),
is_superuser=True,
)
session.add(admin)
await session.commit()
logger.info(f"Initial admin created: {settings.ADMIN_USERNAME}")