重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
所谓数据权限,就是根据不同角色的登录用户,查看不同的列表数据
成都网络公司-成都网站建设公司创新互联建站十余年经验成就非凡,专业从事成都网站建设、网站制作,成都网页设计,成都网页制作,软文发布平台,广告投放等。十余年来已成功提供全面的成都网站建设方案,打造行业特色的成都网站建设案例,建站热线:13518219792,我们期待您的来电!若依数据权限若依的数据权限也是基于角色实现的,支持五种权限模式,按权限大小一次排列:
若依设置数据权限不止页面需要设置,后端也要设置,只设置页面不设置后端就没用!!,对于这个,后面会有详细解释
若依后端设置数据权限非常简单,使用 @DataScope 注解即可实现数据权限
@DataScope 注解下有三种属性:deptAlias ,userAlias,permission
使用此注解的deptAlias 和 userAlias 属性 需数据库有dept_id或者user_id 并且在SQL后面拼接 ${params.dataScope} 而且是实体类需继承BaseEntity 类 ,所以无法支持mybatis-Plus
因为数据权限的实质还是拼接SQL,而params.dataScope就是框架预留的拼接。而 params就在BaseEntity 中
根据部门设置数据权限
userAlias 同deptAlias 这里就不多啰嗦了
* permission着重讲一下permission,permission的定义是 权限字符(用于多个角色匹配符合要求的权限)默认根据权限注解@ss获取,多个权限用逗号分隔开来,如果注解没有写的话,就默认是你角色的权限
这里我改造了一下,因为我们业务需要,比如一个项目是a部门创建的,这个项目理应只有a部门才能看到,项目需要一个审批人,而这个审批人是b部门下的或者其他人,所以登录人如果是审批人也应该看到,我们审批人字段为approval_id,可能还会有经办人或者什么什么各种人,所以改造了一下permission属性,使得也能够自动拼接在系统数据权限的后面
实现类:
自动拼接:
既拼接了部门权限,又拼接了我们自定义字段的权限,而且是or 只要满足一个即可查询出数据
使得供应商创建的原本供应商才能看到的数据,因为登录人是此项目的审批人,也能看到数据
DataScopeAspect是@DataScope的切面类,也是若依框架实现拼接权限SQL的核心
dataScopeFilter 方法,是主要方法
里面的常量即为我们在页面上设置的不同数据权限
如果表里面没有dept_id或者user_id的话,比如只有createdBy 创建人id,实在需要改造的话,也可以把这里SQL里面的user_id改成你想要的createdBy 字段
注:以上所有数据及名称都经过处理,均不涉及公司机密
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧