使用位运算进行权限控制非常普遍。
如:
0000 表示初始化,
0001 表示新增,
0010 表示编辑,
0100 表示更新,
1000 表示查询。。。。。。
使用2的次方表示各个权限值
当给用户赋权限时采用按位或运算 |
如 赋查询,新增权限 : 0000 | 1000 | 0001 = 10001,最后把各个权限进行或运算之后的值存在用户的权限值authority里面。
当判断用户是否有某个操作的权限则使用按位与运算 & ,如判断是否有新增权限:authority & 0001 ;
移除用户某个操作权限使用按位与运算和非运算,如:移除编辑权限:authority & ~0010;