修改用户设置的新增用户的权限点击操作
This commit is contained in:
@@ -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"]),
|
||||
|
||||
Reference in New Issue
Block a user