zoukankan      html  css  js  c++  java
  • 设置不同账户权限算法

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

      计算机底层是通过对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、写验证函数

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

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

  • 相关阅读:
    hdu 2089 不要62(数位dp)
    hdu 3555 Bomb(数位dp)
    hdu 4544 湫湫系列故事——消灭兔子(优先队列)
    STL Algorithms 之 unique
    hdu 1075 What Are You Talking About(map)
    hdu 4268 Alice and Bob(贪心+multiset)
    hdu 4302 Holedox Eating(优先队列/线段树)
    9-16Jenkins-4节点
    9-16Jenkins-3可用的环境变量、参数化构建和依赖
    9-16Jenkins-2定时任务
  • 原文地址:https://www.cnblogs.com/fengju/p/6174369.html
Copyright © 2011-2022 走看看