Skip to main content

3-权限策略

概览

目录:doc/product/financial/policy

该模块将发票相关实体的访问控制策略结构化为 JSON,用于集中管理对象级、字段级与行级权限。

  • 资源权限策略:policy/*.json(例如 policy/fin_invoices.json

发票实体权限策略:policy/fin_invoices.json

文件:policy/fin_invoices.json

该策略以实体 fin_invoices 为粒度,对对象级、字段级与行级访问进行集中控制,区分 adminfinance 等角色。

完整 JSON:

{
"resourceType": "entity",
"resourceId": "",
"resourceName": "fin_invoices",
"description": "i18n:policy.fin_invoices.description",
"objectLevelPolicy": "{\"actions\":{\"read\":{\"allow\":[\"role:admin\",\"role:finance\"]},\"write\":{\"allow\":[\"role:admin\",\"role:finance\"]}}}",
"columnLevelPolicy": "{\"actions\":{\"read\":{\"roles\":{\"admin\":{\"allowedColumns\":[\"*\"]},\"finance\":{\"allowedColumns\":[\"*\"]}}},\"write\":{\"roles\":{\"admin\":{\"allowedColumns\":[\"*\"]},\"finance\":{\"allowedColumns\":[\"*\"]}}}}}",
"rowLevelPolicy": "{\"actions\":{\"read\":{\"roles\":{\"admin\":{\"predicate\":{\"type\":\"comparison\",\"op\":\"is_not_null\",\"field\":\"id\"}},\"finance\":{\"predicate\":{\"type\":\"comparison\",\"op\":\"is_not_null\",\"field\":\"id\"}}}}}}",
"isActive": true,
"priority": 100
}

在初始化脚本 doc/product/financial/init/init.py 中,init_policies 会批量读取上述 JSON,并通过元数据服务接口完成权限策略的落地。