fix: user create(admin)

This commit is contained in:
2026-01-05 23:39:19 +08:00
parent 7854d4542f
commit d147d92b6c
3 changed files with 38 additions and 4 deletions
+1
View File
@@ -12,6 +12,7 @@ class UserCreate(UserBase):
"""创建用户 Schema(管理员手动创建,只需要别名)"""
role: Optional[str] = Field("user", description="角色: user/admin")
email: Optional[EmailStr] = Field(None, description="邮箱地址")
password: Optional[str] = Field(None, min_length=6, description="初始密码(可选)")
is_approved: Optional[bool] = Field(True, description="是否已审批(默认已审批)")
+9 -2
View File
@@ -32,7 +32,7 @@ class UserService:
创建用户(管理员手动创建)
Args:
user_data: 用户创建数据(只需要 alias role
user_data: 用户创建数据(包括 alias, role, email, password 等
db: 数据库会话
Returns:
@@ -47,17 +47,24 @@ class UserService:
user = User(
jwt_sub=None, # NULL 表示未绑定 QQ
alias=user_data.alias,
email=user_data.email,
role=user_data.role or "user",
is_approved=user_data.is_approved if user_data.is_approved is not None else True, # 使用请求中的值,默认已审批
jwt_exp="0",
authorization=None,
)
# 如果提供了密码,则设置密码
if user_data.password:
import bcrypt
password_hash = bcrypt.hashpw(user_data.password.encode('utf-8'), bcrypt.gensalt())
setattr(user, 'password_hash', password_hash.decode('utf-8'))
db.add(user)
db.commit()
db.refresh(user)
logger.info(f"管理员创建用户成功: {user.alias} (ID: {user.id}, 角色: {user.role})")
logger.info(f"管理员创建用户成功: {user.alias} (ID: {user.id}, 角色: {user.role}, 密码: {'已设置' if user_data.password else '未设置'})")
return user
@staticmethod