39 lines
1.2 KiB
Python
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()
|