# zelin_permission **Repository Path**: jasonfu06/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**: 33 - **Created**: 2022-01-11 - **Last Updated**: 2025-06-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 权限优化 使用方法 先决条件 进入 bench 工作台目录; 1.新安装 1.1、获取对应版本APP bench get-app https://gitee.com/yuzelin/zelin_permission.git 1.2、安装APP(有多个站点且未设默认站点的请加--site参数) bench install-app zelin_permission 升级 2.1、bench update 命令(如果不加--pull参数则站点上所有app都会更新) bench update --apps zelin_permission --pull --reset (如果变更涉及数据库表结构变更,需运行这个命令) bench migrate 2.2 重新编译JS等资源文件 bench build --app zelin_permission --force 卸载 3.1 从站点卸载 bench uninstall-app zelin_permission 3.2 从整个bench环境卸载,移除整个应用目录 bench remove-app zelin_permission 欢迎提交问题和反馈建议。 附功能说明 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. 针对报表界面右上角的添加列(关联单据字段), 2.1 增加栏位权限级别检查,无权限则返回空值 2.2.传入主键值清单参数,避免查询并返回整个数据表数据,影响性能 3. 增加用户权限过滤,剔除用户无权限单据 3.1 实现原理:覆盖标准报表取数函数,移除用户无权限的数据行 3.2 使用方式 3.2.1 新增待增加权限检查的报表及单据栏位(支持动态链接栏位与链接栏位) 4. 列表,表单及报表界面菜单按钮根据用户角色隐藏 4.1 原理 在网页创建按钮方法中增加权限检查代码,用户无权限则不新增按钮 4.2 使用方式 4.2.1 新增按钮权限检查,在表单界面,如果用户没有权限,则不再显示相关菜单按钮,安装后默认加载了标准菜单按钮,要根据情况自行增减以处理自定义菜单按钮及菜单按钮翻译调整等情况 支持全局按钮,即单据类型子表留空 支持单据级的按钮,输入具体的单据类型 按钮标签填英文,大部分情况下,按钮标签与权限检查单据类型是一样的,如Purchase Order. 代码会自动处理英文翻译,确保用户在中英文环境下未授权按钮均能隐藏 5. 强制4眼原则 5.1 同一个单据创建人与提交人不能相同 5.2 受控流程关联的上下游单据提交人不能相同 6. 权限最近一次出错详细日志,方便管理员进行查错处理 #### License MIT