ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## 一、概述 平台支持数据权限,所有的实体数据项,都可以定义为数据权限,用于精细化控制;它控制了某个角色获得授权的受控数据权限,在需要做数据权限管控的业务中,这个设定将生效,如果压根不需要管控的业务,则这个设定没什么意义了; > 组织权限是一种平台内置的特定数据权限; 所有的需要管控范围的数据项,都需要先定义为数据权限项,然后赋值授权给指定角色;通过这种定义方式,就能得到某个账号得到授权的数据项范围; ### **管理界面** ![](https://img.kancloud.cn/7b/9d/7b9dd82719bc0a4a0dfe0eab7435a0d8_1366x657.png) ## 二、数据来源 在业务包中,增加一个针对某个数据项(某实体中某个字段)的数据权限定义类,举例如下; ``` @RayDataLimitDefinition(value = { // @RayDataLimitDefinitionEntityField(dataBelongEntityLabel = "调度作业", dataBelongEntity = "org.ray.framework.system.dao.entity.SysJob", dataBelongField = "jobId", dataBelongLabelField = "jobName"), // @RayDataLimitDefinitionEntityField(dataBelongEntityLabel = "会员定义", dataBelongEntity = "org.ray.framework.system.dao.entity.SysVip", dataBelongField = "vipId", dataBelongLabelField = "vipName")// }) public class RayFrameworkDataLimitDefinition { } ``` >[danger] 这种数据配置类可以无限增加,系统启动的时候,会依据注解扫描; ## 三、业务使用 ### **后端代码** 业务代码中,通过api访问,获得当前账号已授权的指定实体指定字段的值范围; ``` @Autowired private SharedStaffLimitService sharedStaffLimitService; String authorizedDataValues = sharedStaffLimitService.authorizedControlledDataValuesOfSpecEntityField(model.getcurLoginData().getcurStaffId(),"org.ray.framework.system.dao.entity.SysVip","vipId"); ``` ### **前端代码** 前端代码无须特殊处理;