Files
planet/backend/scripts/init_admin.py
linkong a37d4b6289
Some checks failed
ci / backend (push) Has been cancelled
ci / frontend (push) Has been cancelled
ci / delivery (push) Has been cancelled
fix: update default linkong password
2026-05-21 02:20:45 +08:00

65 lines
1.7 KiB
Python

"""Create default admin user"""
import asyncio
import sys
sys.path.insert(0, ".")
from app.core.security import get_password_hash
from app.db.session import async_session_factory
from app.models.user import User
DEFAULT_LOGIN_USERS = (
{
"username": "admin",
"email": "admin@planet.local",
"password": "admin123",
"role": "super_admin",
},
{
"username": "linkong",
"email": "linkong@planet.local",
"password": "LK12345678",
"role": "super_admin",
},
)
async def create_admin():
from sqlalchemy import text
async with async_session_factory() as session:
created = []
for default_user in DEFAULT_LOGIN_USERS:
result = await session.execute(
text("SELECT id FROM users WHERE username = :username"),
{"username": default_user["username"]},
)
if result.fetchone():
continue
session.add(
User(
username=default_user["username"],
email=default_user["email"],
password_hash=get_password_hash(default_user["password"]),
role=default_user["role"],
is_active=True,
)
)
created.append(default_user)
await session.commit()
if not created:
print("Default login users already exist")
return
for default_user in created:
print(
f"Default login user created: {default_user['username']} / {default_user['password']}"
)
if __name__ == "__main__":
asyncio.run(create_admin())