例如我们要让WxApp(公众号账号)受到数据权限的控制,实现不同机构的用户管理不同的公众号,步骤如下
-
wx_app表需要有机构字段(organ_id),因为系统通过机构来划分数据权限的
-
nacos中配置需要控制数据Mapper方法,这里我配的是分页查询方法(selectPage)
-
修改用户角色的数据权限类型(全部、本级、本级及子级、自定义)
-
此WxApp的数据权限就配置完成了,通过赋给用户角色即可完成不同机构的用户管理不同的公众号
-
核心代码(DataScopeInterceptor.java)
//查询数据权限配置 List<String> mapperIds = dataScopeProperties.getMapperIds(); //未配置数据权限,直接放行 if (mapperIds==null || mapperIds.size()<=0) { return invocation.proceed(); }else{ String mappedStatementId = mappedStatement.getId(); if(!CollUtil.contains(mapperIds,mappedStatementId)){ return invocation.proceed(); } } -
数据权限在商城模块中没有使用到,所以不是所有表都做了数据权限;可以根据数据库表中是否有机构字段(organ_id)判断是否有数据权限功能
