feat: 统一登录门户(按角色分流五套工作台)+ 补齐权限覆盖缺口
- tools/portal.py:客户/风控/运营/管理员/投顾五个工作台,走真实登录与真实接口 - 新增 6 个此前从未建过的权限码(promotion:* 4 个 / financial:nl2sql:read / probe:read), 它们让推广材料与金融 NL2SQL 两条线对所有角色都是 403 - 投顾权限 10 → 25 项:补投资目标创建确认、agent:run、行情、知识检索、客户画像、推广材料 - 运营补 financial:nl2sql:read;create_test_user.py 不再硬编码角色 id(改按 role_code 查库) - portal 的写请求补 Idempotency-Key 头(漏了会被 AGENT_INPUT_INVALID 拒) - 新增 tools/check_permission_coverage.py 做权限对账
This commit is contained in:
@@ -108,6 +108,21 @@ PERMISSIONS: tuple[tuple[int, str, str, str, str], ...] = (
|
||||
(9048, "risk:alert:write", "risk", "alert", "all"),
|
||||
(9049, "risk:alert:scan", "risk", "alert", "all"),
|
||||
(9050, "risk:report:mail", "risk", "report", "all"),
|
||||
# ---- 9051-9056:代码早就要求、但**从未建过**的 6 个权限码 ----
|
||||
# 症状同样是 `AGENT_PERMISSION_DENIED: 缺少操作权限`:看着像角色配错,其实是
|
||||
# **权限码根本不存在**,于是任何角色都过不去。对账工具见
|
||||
# `tools/check_permission_coverage.py`(把"代码声明的权限"与"库里各角色拥有的"比一遍)。
|
||||
# 推广材料:`promotion_material_service.py` 用这四个;第 164 行专门判
|
||||
# `"advisor" in context.roles`,说明投顾本来就在这条业务线上。
|
||||
(9051, "promotion:read", "promotion", "read", "all"),
|
||||
(9052, "promotion:write", "promotion", "write", "all"),
|
||||
(9053, "promotion:review", "promotion", "review", "all"),
|
||||
(9054, "promotion:deliver", "promotion", "deliver", "all"),
|
||||
# NL2SQL 工具声明该权限(`bootstrap.py`);`financial_nl2sql_service.py:272` 的角色
|
||||
# 白名单是 {advisor, operator, admin, super_admin} —— 投顾与运营都要用它。
|
||||
(9055, "financial:nl2sql:read", "financial", "nl2sql", "all"),
|
||||
# 平台验证探针工具(`platform_probe.py`),只给 admin。
|
||||
(9056, "probe:read", "probe", "read", "all"),
|
||||
)
|
||||
|
||||
# 客户:业务侧自助能力(自己的会话、反馈、转人工、自己的记忆画像)。
|
||||
|
||||
Reference in New Issue
Block a user