Files
Canto/backend/core/init_admin.py

39 lines
1.2 KiB
Python

import logging
from core.database import SessionLocal
from core.security import get_password_hash
from db.crud import count_users, create_user_by_admin
logger = logging.getLogger(__name__)
def init_superuser():
db = SessionLocal()
try:
user_count = count_users(db)
if user_count > 0:
logger.info(f"Database already has {user_count} user(s), skipping admin initialization")
return
logger.info("No users found in database, initializing default superuser")
hashed_password = get_password_hash("admin123456")
admin_user = create_user_by_admin(
db,
username="admin",
email="admin@example.com",
hashed_password=hashed_password,
is_superuser=True
)
logger.info(f"Default superuser created successfully: {admin_user.username}")
logger.warning("SECURITY WARNING: Default admin credentials are in use!")
logger.warning(" Username: admin")
logger.warning(" Password: admin123456")
logger.warning(" Please change the password immediately after first login!")
except Exception as e:
logger.error(f"Failed to initialize superuser: {e}")
raise
finally:
db.close()