细粒度权限控制

1.细粒度的权限控制就是对数据层次进行权限控制,通过查询语句加上3个字段来实现,一个字段是创建人的字段,另一个是创建人所属部门,还有一个用户对应的等级字段,来判断当前用户角色,这样来控制每一个人读取到的数据不同.(粗粒度是控制对某个资源访问权限的控制,如shiro框架)示例代码
2.String hql = “from Contract where 1=1 “;
3.
4. //如何确定出用户的等级
5. User user = super.getCurUser();
6. int degree = user.getUserinfo().getDegree();
7. if(degree4){
8. //说明是员工
9. hql+=" and createBy=’"+user.getId()+"’";
10. }else if(degree
3){
11. //说明是部门经理,管理本部门
12. hql+=” and createDept=’”+user.getDept().getId()+"’";
13. }else if(degree2){
14. //说明是管理本部门及下属部门?部门之间的主键有关系.
15. hql+=" and createDept like ‘"+user.getDept().getId()+"’";
16.
17. }else if(degree
1){
18. //说明是副总?????
19.
20.
21. }else if(degree==0){
22. //说明是总经理
23. }
24. 跨部门跨员工的涉及多表的细粒度控制查询时,需要一张新的中间表.中间表记录当前用户所拥有的部分和人员的权限.然后createby in ‘中间表查出的数据’ createdept in ‘中间表查出的数据’

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值