修改用户设置的新增用户的权限点击操作

This commit is contained in:
wangjiming
2026-08-17 16:04:04 +08:00
parent 6c1bf61ff7
commit 4e27b98a84
12 changed files with 1065 additions and 192 deletions

View File

@@ -555,6 +555,8 @@ class PlatformStore:
extra_path = schema_dir / extra
if extra_path.exists():
conn.executescript(extra_path.read_text(encoding="utf-8"))
# data_convert_tasks 表补充 created_by 字段(用于数据隔离)
self._ensure_columns(conn, "data_convert_tasks", {"created_by": "TEXT"})
def _column_names(self, conn: PgConnection, table_name: str) -> set[str]:
columns = conn.execute(
@@ -1285,7 +1287,13 @@ class PlatformStore:
def create_user(self, payload: dict[str, Any]) -> dict[str, Any]:
user_id = new_id("u")
permissions = payload.get("permissions") or (ALL_PERMISSIONS if payload.get("role") == "admin" else ["dashboard"])
role = payload.get("role", "user")
if role == "admin":
permissions = ALL_PERMISSIONS
else:
# 普通用户:默认拥有所有业务权限,仅排除 user-settings 和 compute
role = "user"
permissions = [p for p in ALL_PERMISSIONS if p not in ("user-settings", "compute")]
with self.connect() as conn:
conn.execute(
"""
@@ -1298,7 +1306,7 @@ class PlatformStore:
payload["username"],
hash_password(payload.get("password", "platform123")),
payload.get("display_name") or payload["username"],
payload.get("role", "viewer"),
role,
payload.get("status", "active"),
json_dumps(permissions),
utcnow(),
@@ -1318,8 +1326,8 @@ class PlatformStore:
# 管理员权限不可更改,必须是全部
perms = ALL_PERMISSIONS
else:
# 非 admin 用户不能拥有 user-settings 权限
perms = [p for p in (perms or []) if p != "user-settings"]
# 非 admin 用户不能拥有 user-settings 和 compute 权限
perms = [p for p in (perms or []) if p not in ("user-settings", "compute")]
payload = {**payload, "permissions": perms}
values = {
"role": payload.get("role", row["role"]),