该组件提供数据授权过滤功能,可以通过简单整合快速构建具备授权管理功能。
授权功能接入
按以下步骤进行接入,可以参考流程定义列表的授权。
前端整合
打开对话框,传递两个参数,进行配置授权资源
- rightsObject: 授权对象
- rightsTarget: 授权对象的ID
function commonAuthorization(id) { |
前端如此配置就OK了。
后端整合
- 添加枚举变量,该变量必须添加,在后端获取授权过滤sql时使用
public enum RightsObjectConstants { |
- 在需要过滤的列表查询出添加获取授权的参数如:
Map<String, Object> userPermission = sysAuthorizationManager.getUserRightsSql(RightsObjectConstants.WORKBENCH,userId,null); |
- RightsObjectConstants.WORKBENCH: 为授权模块
- userId: 为用户id
- null :默认为id 为objectTarget授权目标的字段key
- 修改mapper文件
rightsSql
便是userPermission
内部的一个参数SELECT panel.* FROM sys_workbench_panel panel ${rightsSql}
至此完成了数据权限过滤的功能
复杂场景的支持
Map<String, Object> userPermission 参数介绍
rightsSql :若查询语句简单可直接在sql中添加
${rightsSql}
即可如上3所示INNER JOIN sys_authorization rights ON id_ = rights.rights_id_ where rights_permission_code_ in ( id-type,groupid-type )
rights : 权限的数组,当前用户的可授权信息 eg:分公司、组织、角色、岗位等
set<String> : ["id-user","id-role","id-org"] ...
当复杂sql场景下可以自行使用rights
信息,关联sys_authorization
表进行数据过滤
授权表结构
CREATE TABLE `sys_authorization` ( |