注册 登录
编程论坛 ASP技术论坛

关于管理员权限问题,请高手给个思路,谢谢!

nicechlk 发布于 2008-10-05 13:35, 1659 次点击
我有一网站后台,管理员有多个,需求如下:
1,管理员分为超级管理员(1个)、总管理员(几个)、普通管理员(多个)
2,这3种身份的权限各有不同,当然,超级管理员的权限最大,可以对其他管理员进行管理;总管理员能对普通管理员进行管理。
3,管理员的权限分类如下:
   网站设置管理 新闻管理 产品管理 招聘管理 调查设置 等等。。。
请教:
  1,如何做到管理员和他的权限一一对应?
  2,如何判断管理员不具备某一种权限?
  3,数据库里该如何设置?(access数据库)
谢谢!!
9 回复
#2
hmhz2008-10-05 14:00
做网站,最烦琐的是权限,特别是后台权限,想把权限做的完美,那程序写起来非常复杂

我做权限是使用数组来设置权限的,保存每个选项使用 0或1来判断

0表示没有权限
1表示开放权限

初始权限:0|0|0|0|0|0|0
全部开放:1|1|1|1|1|1|1

图片如下示例:
只有本站会员才能查看附件,请 登录
#3
nicechlk2008-10-05 16:36
前提是,我得把所有的权限项目放入数据库里是吗?
#4
yms1232008-10-05 16:44
个人觉得解决楼主说的权限管理,Windows的用户组权限管理机制的确是值得借鉴的。
#5
2008-10-05 16:52
直接在么个功能上判断下职位就行了。

权限表结构如下
订单  (管理A,管理B)
留言  (管理A,管理B,管理C)

这样能方便修改
#6
multiple19022008-10-05 20:34
[bo][un]yms123[/un] 在 2008-10-5 16:44 的发言:[/bo]

个人觉得解决楼主说的权限管理,Windows的用户组权限管理机制的确是值得借鉴的。

Windows的用户组就是对于管理员或者非管理员,是属于(一个或多个)组的,而权限设置是针对组的属性。

动网的方法是如2楼所说,对每个权限分别保存为一个数据,并且是针对用户的属性。(可能说得很不清楚)
#7
nicechlk2008-10-12 10:44
我就直接把权限项目用a.....z字母表示,然后定义a、b、c....等分别表示的项目文字,这样的话,在数据库里只需一个字段就可以装下这些字母,然后再在左侧项目里做判断,是否包含这些字母其中的哪些个。
不过,这样做思路简单,代码太多。
hmhz的方法挺好,不知道他的数据库是如何设计的?如果要是在数据库里添加项目字段,那数据库读取的时候也是很麻烦。
还有高手指点吗?
#8
yms1232008-10-12 11:46
考虑这样的表结构
User表
ID
UserName
GroupName
.....

Group表
GroupName
Limit1(权限1)
Limit2(权限2)
.....

 ID UserName GroupName
 0   abc      普通用户
 1   admin    管理员

GroupName Limit1 Limit2
普通用户   False False
管理员     True   True
#9
nicechlk2008-10-12 17:17
呵呵,真是太好了,用2个表来做!
非常感谢!
#10
hmhz2008-10-13 08:02
表结构很简单

用户表
只有本站会员才能查看附件,请 登录


权限表
只有本站会员才能查看附件,请 登录


[[it] 本帖最后由 hmhz 于 2008-10-13 08:06 编辑 [/it]]
1