fix: 修正 create_admin.py 调用注释为 py -3.12
This commit is contained in:
@@ -0,0 +1,81 @@
|
|||||||
|
"""
|
||||||
|
创建管理员账号 — 交互式命令行脚本
|
||||||
|
|
||||||
|
用法:
|
||||||
|
cd backend
|
||||||
|
py -3.12 scripts/create_admin.py
|
||||||
|
"""
|
||||||
|
|
||||||
|
import sys
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
# 确保 backend/ 目录在 sys.path 中,使 app.* 导入正常工作
|
||||||
|
backend_dir = Path(__file__).resolve().parent.parent
|
||||||
|
sys.path.insert(0, str(backend_dir))
|
||||||
|
|
||||||
|
from getpass import getpass
|
||||||
|
|
||||||
|
from sqlmodel import Session, select
|
||||||
|
|
||||||
|
from app.core.security import hash_password
|
||||||
|
from app.db.session import engine
|
||||||
|
from app.models.user import User, UserRole
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
print("=" * 50)
|
||||||
|
print(" 军事科技工作台 — 创建管理员账号")
|
||||||
|
print("=" * 50)
|
||||||
|
print()
|
||||||
|
|
||||||
|
username = input("请输入用户名: ").strip()
|
||||||
|
if not username:
|
||||||
|
print("❌ 用户名不能为空")
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
display_name = input("请输入显示名(中文姓名): ").strip()
|
||||||
|
if not display_name:
|
||||||
|
print("❌ 显示名不能为空")
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
password = getpass("请输入密码(输入不显示): ").strip()
|
||||||
|
if not password:
|
||||||
|
print("❌ 密码不能为空")
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
password_confirm = getpass("请再次输入密码确认: ").strip()
|
||||||
|
if password != password_confirm:
|
||||||
|
print("❌ 两次输入的密码不一致")
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
with Session(engine) as session:
|
||||||
|
# 检查用户名是否已存在
|
||||||
|
existing = session.exec(
|
||||||
|
select(User).where(User.username == username)
|
||||||
|
).first()
|
||||||
|
if existing:
|
||||||
|
print(f"❌ 用户名「{username}」已存在,请换一个用户名")
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
user = User(
|
||||||
|
username=username,
|
||||||
|
display_name=display_name,
|
||||||
|
password_hash=hash_password(password),
|
||||||
|
role=UserRole.zhipianren,
|
||||||
|
is_active=True,
|
||||||
|
)
|
||||||
|
session.add(user)
|
||||||
|
session.commit()
|
||||||
|
session.refresh(user)
|
||||||
|
|
||||||
|
print()
|
||||||
|
print("✅ 管理员账号创建成功!")
|
||||||
|
print(f" 用户名: {user.username}")
|
||||||
|
print(f" 显示名: {user.display_name}")
|
||||||
|
print(f" 角色: {user.role.value}(制片人/管理员)")
|
||||||
|
print(f" ID: {user.id}")
|
||||||
|
print()
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
Reference in New Issue
Block a user