权限总结:
1.权限类别有
序号 名称 值
1 读 1
2 查询 2
3 写 4
4 更新 8
5 删除 16
6 …… ……
2.增加权限
我的权限值 = 读 | 查询 | 写 | 更新;
我的权限值 = 1 | 2 | 4 | 8 = 15;
增加删除权限:
我的权限值 = 我的权限值 | 删除;
我的权限值 = 15 | 16 = 31;
3.删除权限
删除写权限:
我的权限值 = 读 | 查询 | 写 | 更新;
我的权限值 = 1 | 2 | 4 | 8 = 15;
删除写权限:
我的权限值 = 我的权限值 ^ (我的权限值&写);
我的权限值 = 15 ^ (15 & 4) = 11;
删除查询,更新权限:
要删除权限值 = 查询 | 更新;
要删除权限值 = 2 | 8 = 10;
我的权限值 = 我的权限值 ^ (我的权限值&要删除权限值);
我的权限值 = 15 ^ (15 & 10) = 5;
4.查询权限
我的权限值 = 读 | 查询 | 写 | 更新;
我的权限值 = 1 | 2 | 4 | 8 = 15;
单个
查询更新权限:
return ((我的权限值 & 更新) == 更新)
return ((15 & 8) == 8)
多个
查询更新,读,写权限:
要查询的权限 = 更新 | 读 | 写;
要查询的权限 = 8 | 1 | 4 = 13 ;
return ((我的权限值 & 要查询的权限) ==要查询的权限)
return ((15 & 13) == 13)