jeecg权限管理介绍表单级别数据权限(3)

来源:互联网 发布:asp php 哪个好 编辑:程序博客网 时间:2024/05/29 04:22

继续写的原因

连续写了三个都不合格,还是希望能继续写下去

我的jeecg表单理解实现

我的操作

新建可以编辑的角色
这里写图片描述
建立一个角色,不可看表单数据的用户
这里写图片描述
建立一个不可编辑的角色
这里写图片描述
分别给这三个角色建立三个用户
这里写图片描述
这里写图片描述
这里写图片描述

编辑菜单并给菜单赋值上隐藏的数据规则
这里写图片描述
编辑菜单给赋值 不可编辑的数据规则
这里写图片描述

给隐藏的用户赋权限
这里写图片描述
给不可用的用户赋值权限
这里写图片描述

然后用隐藏的用户查看
这里写图片描述
然后用不可编辑的用户查看数据,点击录入
这里写图片描述

总结

表单权限有带你想Linux 对文件的权限下面是别人写的一个文章我抄来的

权限控制算法这里我介绍一种很常用,也比较Professor的权限控制思路。这里我用java语言描述,其实都差不多的。自己转一下就可以了。为了方便,我们这里定义a^b为:a的b次方这里,我们为每一个操作设定一个唯一的整数值,比如:    删除A---0修改A---1添加A---2    删除B---3修改B---4添加B---5。。。理论上可以有N个操作,这取决于你用于储存用户权限值的数据类型了。这样,如果用户有权限:添加A---2;删除B---3;修改B---4那用户的权限值 purview =2^2+2^3+2^428,也就是2的权的和了。化成二进制可以表示为11100这样,如果要验证用户是否有删除B的权限,就可以通过位与运算来实现。在Java里,位与运算运算符号为&即是:int value = purview &((int)Math.pow(2,3));你会发现,当用户有操作权限时,运算出来的结果都会等于这个操作需要的权限值!原理:位与运算,顾名思义就是对位进行与运算:以上面的式子为例:purview & 2^3 也就是 28&8将它们化成二进制有  1110001000-------------------  01000 == 8(十进制) == 2^3同理,如果要验证是否有删除A---0的权限可以用:purview &((int)Math.pow(2,0));即:  1110000001------------------------  00000 == 0(十进制)  != 2^0这种算法的一个优点是速度快。可以同时处理N个权限如果想验证是否同时有删除A---0和删除B---3的权限可以用purview&(2^0+2^3)==(2^0+2^3)?true:false;设置多角色用户。根据权限值判断用户的角色。。。下面提供一个java的单操作权限判断的代码://userPurview是用户具有的总权限//optPurview是一个操作要求的权限为一个整数(没有经过权的!)          public static boolean checkPower(int userPurview, int optPurview){            int purviewValue = (int)Math.pow(2, optPurview);            return (userPurview & purviewValue) == purviewValue;      }当然,多权限的验证只要扩展一下就可以了。几点注意事项:首先,一个系统可能有很多的操作,因此,请建立数据字典,以便查阅,修改时使用。其次,如果用数据库储存用户权限,请注意数值的有效范围。请注意数值的有效范围。操作权限值请用唯一的整数!
0 0