1、权限值的设定
用二进制来表示权限值应该是按位来设置,每个位占一个,表示一种权限,如:
00000001表示十进制1,
00000010表示十进制2,
00000100表示十进制4,
00001000表示十进制8;
依次类推,才能清晰正确的标识,多种权限的赋予则使用“或运算”,此时各位比较混乱,如00000011表示十进制3,此时它意味着拥有两种权限。
Long userrolevalue ;//用户的权限值,根据他属于的权限组,这个值会不同
Long oprolevalue ;//一个操作的权限值,根据他属于的权限组,这个值会不同
2、权限的赋予(或运算)
userrolevalue = userrolevalue | oprolevalue
假设一个用户u1,他的初始权限值为0(00000000)。如果要指定他有经理的权限,经理的权限值为4(00000100),在第三个二进制位为1。
很显然,userrolevalue = 0 | 4 ,值为4