+ -
当前位置:首页 → 问答吧 → 不同于dz论坛的多权限分配

不同于dz论坛的多权限分配

时间:2011-08-28

来源:互联网

某系统,其用户有1,2,3,4,5,6,7,8,9个类型,

用户可以随机选择类型,类型个数、组合都是随机的,

比如可以只选1,可以选1,2,3,4,5,6,7,8,9,可以选1,9……

每个用户的后台管理系统的权限不一样,根据每种组合分配权限,

这就是说,有多少个组合,就有多少个权限。

这个dz论坛不一样,dz的用户组和权限只有那么几个,是固定的。

我觉得,可以写一个算法,生成一个数组,数组的值就是这多个组合(多个类型之间用“,号”分隔),起健名正好是唯一的


跪求思路,感谢。

作者: xiongmzh   发布时间: 2011-08-28

pow(2, n)

作者: xuzuning   发布时间: 2011-08-28

大哥,所有的都是从最基础的元素进行扩展的!
你的想法应该是1-9所有的组合都是一个不一样的权限!

咱们可以先从1-3来实现。那么要这样实现有两中方法
1: 1、2、3分别管理不同的模块,而且都是必要条件,只有有1时才能操作a模块,有2时才能操作b模块,一次类推!这样再相互组合
2: 1-3的所有的组合都给一个唯一的值,然后分别定义这些值的权限就可以了!
当然我感觉在扩展性上来讲,规划成1的模式是比较好的!

作者: a0shashen03   发布时间: 2011-08-28

引用 2 楼 a0shashen03 的回复:
大哥,所有的都是从最基础的元素进行扩展的!


的确,第一种方法最简单,也最容易维护的。

第二种方法说白了,就是为了有更好的用户体验度。
你想想,有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是哪儿来的,不过 好像有点灵感了

作者: xiongmzh   发布时间: 2011-08-28