v2.9update
This commit is contained in:
@@ -245,10 +245,30 @@ class AdminService:
|
||||
role_type: str,
|
||||
operator_id: int
|
||||
) -> Dict[str, Any]:
|
||||
"""添加管理员"""
|
||||
existing = await UserModel.get_by_username(username)
|
||||
"""添加管理员(支持重新激活已删除的管理员)"""
|
||||
# 检查用户名是否存在(含已禁用用户,因 username 有 UNIQUE 约束)
|
||||
existing = await UserModel.get_by_username_any(username)
|
||||
if existing:
|
||||
return {"success": False, "message": "用户名已存在"}
|
||||
if existing.get('status') == 1:
|
||||
return {"success": False, "message": "用户名已存在"}
|
||||
# 用户已被软删除(status=0),重新激活
|
||||
await UserModel.update_status(existing['user_id'], 1)
|
||||
await UserModel.update_real_name(existing['user_id'], real_name)
|
||||
user_id = existing['user_id']
|
||||
# 检查是否已有管理员角色
|
||||
existing_role = await AdminRoleModel.get_by_user_id(user_id)
|
||||
if existing_role:
|
||||
await AdminRoleModel.update_role(user_id, role_type)
|
||||
else:
|
||||
await AdminRoleModel.create(user_id=user_id, role_type=role_type, subject_id=None)
|
||||
logger.info(f"用户[{operator_id}] 重新激活管理员: {username} ({role_type})")
|
||||
return {
|
||||
"success": True,
|
||||
"user_id": user_id,
|
||||
"username": username,
|
||||
"password": None, # 重新激活不返回密码
|
||||
"role_type": role_type
|
||||
}
|
||||
|
||||
if not password:
|
||||
password = security.generate_random_password()
|
||||
@@ -274,7 +294,6 @@ class AdminService:
|
||||
"password": password,
|
||||
"role_type": role_type
|
||||
}
|
||||
|
||||
@staticmethod
|
||||
async def get_admins() -> Dict[str, Any]:
|
||||
"""获取管理员列表"""
|
||||
|
||||
Reference in New Issue
Block a user