# zelin_permission **Repository Path**: oycl/zelin_permission ## Basic Information - **Project Name**: zelin_permission - **Description**: erpnext 权限功能优化,特别是报表权限 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 36 - **Created**: 2022-01-12 - **Last Updated**: 2024-11-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## Permission Enhancement 权限优化 本应用解决以下几个权限问题 1. 报表数据脱敏,即仅限特别授权用户显示敏感信息,如只有财务及管理人员才能看到库存报表的成本、金额信息, 普通用户仅显示数量信息 1.1 实现原理:覆盖标准报表取数函数,剔除栏位清单中用户未授权栏位及数据中未授权栏位内容 1.2 使用方法 1.2.1 新增受控报表栏位定义(栏位集合), 1.2.1.1 填写适用的报表,可填多个报表(多个报表敏感栏位相同),如果该栏位留空,则适用所有报表 1.2.1.2 填写受控栏位清单,栏位值支持报表栏位名,中/英文标签(最好是栏位字段名或原英文标签,如果中文标签用户切换为英文语言就不生效了!) 1.2.2 新增受控报表栏位分派(授权) 1.2.2.1 填写受控报表栏位定义,关联定义的受控栏位清单 1.2.2.2 填写报表字段,可填多个报表(多个报表敏感栏位相同),如果该栏位留空,则适用所有报表 1.2.2.3 填写用户角色字段,可以填多个角色 2. 用户通过报表界面添加关联单据字段时,增加依据栏位权限级别检查,无权限则返回空值 get_data_for_custom_field 两个问题,1. 没有检查用户栏位级权限,2. 未传入主键值清单,导致查询返回了整个表的数据,应该在前端界面就剔除无权限栏位 3. 增加用户权限过滤,剔除用户无权限单据 3.1 实现原理:覆盖标准报表取数函数,移除用户无权限的数据行 3.2 使用方式 3.2.1 新增待增加权限检查的报表及单据栏位(支持动态链接栏位与链接栏位) 4. 列表,表单及报表界面菜单按钮根据用户角色隐藏 4.1 在网页创建按钮事件中增加权限检查代码,用户无权限则不新增按钮 4.2 使用方式 4.2.1 新增受控按钮 4.2.2 分派受控按钮给角色 5. 强制4眼原则 5.1 同一个单据创建人与提交人不能相同 5.2 受控流程关联的上下游单据提交人不能相同 6. 权限最近一次出错详细日志,方便管理员进行查错处理 #### License MIT