设置不同账户权限算法

  无论是在网站架构上,还是在游戏里,还是软件架构里。不同的级别的用户对应于不同的操作权限。前段时间接触了有关权限设置和验证的算法,感觉写的挺好,学习一下。同时分享一下。

  计算机底层是通过对0和1的不同组合然后通过不同的门的不同逻辑运算得出0或者1。我们在权限设置里也可以采用这种方法。比如有个不同的权限限定系统。我就不画图了(本人很懒的)。在这里大概介绍一下怎么分级,如何初始化,如何验证。呵呵,里面你可以感觉出与和或操作的神奇搭配组合。

 enum{

司令 = 0,  

军长,

师长,

旅长,

团长,

营长,

连长

};

enum{

可以抽烟 =  ox1, // 0000001

可以喝酒 =  ox2, // 0000010

可以娶媳妇 = ox4, // 0000100

可以生两个孩子 = ox8, // 0001000 

可以升值 =  ox10, // 0010000

可以打人 =  ox20, // 0100000

可以带兵 =  ox40 // 1000000

};

  好的,聪明的孩子已经知道什么意思了吧,对于不同的权限对应上不同的数字1就可以了。当然了要给一个人分配权限我们只需做“|”操作。

现在举个例子:

                          司令权限 = oxffffff;

                          连长权限 =  可以抽烟 | 可以喝酒; 

  这个初始化每个级别的权限,然后就是判定了,比如说连长要生两个孩子。就用连长的权限去和生两个孩子做“&”运算。举个列子:

连长权限&可以生两个孩子 = ox0;

很明显了,是不能生两个孩子。没有这个权限。

  好了基本上说完了,当然了在实际操作中要有一个明确的思路,

1、初始化不同等级

2、初始化不同权限

3、初始化不同等级对应不同权限的地图

4、写验证函数

这是验证的基本思路,其它的验证这个人是否属于这个用户组,这个人是不是定义的级别里面。等等,实际操作中自己要把握好自己的脉象。

  先写到这里,有点简单了。但我认为主要是思路,编码不难谁都会,但是思路不一定有。

原文地址:https://www.cnblogs.com/fengju/p/6174369.html