某系统,其用户有1,2,3,4,5,6,7,8,9个类型,用户可以随机选择类型,类型个数、组合都是随机的,比如可以只选1,可以选1,2,3,4,5,6,7,8,9,可以选1,9……每个用户的后台管理系统的权限不一样,根据每种组合分配权限,这就是说,有多少个组合,就有多少个权限。这个dz论坛不一样,dz的用户组和权限只有那么几个,是固定的。我觉得,可以写一个算法,生成一个数组,数组的值就是这多个组合(多个类型之间用“,号”分隔),起健名正好是唯一的
跪求思路,感谢。

解决方案 »

  1.   


    的确,第一种方法最简单,也最容易维护的。第二种方法说白了,就是为了有更好的用户体验度。
    你想想,有1,2,3个模块,如果一个用户有操作1,3模块的权限,用第一个方法的话,需要注册两次,如果有更多权限,需要注册更多的帐号,用户嫌这样麻烦,恐怕没几个人愿意来注册了。用第二个方法,就需要像一下这样组合:
    $array = array(
    '1',
    '2',
    '3',
    '4',
    '1,2',
    '1,3',
    '1,4',
    '2,3',
    '2,4',
    '3,4',
    );我得想个算法生成这样一个数组,然后就好办了。1楼的 pow(2, n)   不太明白,尤其是2是哪儿来的,不过  好像有点灵感了
      

  2.   

    错了,应该是这样:
    $array = array(
    '1',
    '2',
    '3',
    '4',
    '1,2',
    '1,3',
    '1,4',
    '1,2,3',
    '1,3,4',
    '1,2,4'
    '2,3',
    '2,4',
    '2,3,4'
    '3,4',
    );
      

  3.   

    算咯   貌似这样做不太现实啊,我还是在smarty中使用in_array方式做多个判断好了    满足就给链接,否则null
      

  4.   

    其实就是个  RBAC  系统。楼主百度下