您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

求PHP网站靠山管理 管理员 权限控制 系统方案

2026/1/30 13:40:19发布14次查看
求php网站后台管理 管理员 权限控制 系统方案
小弟现在做一个网站后台,包括文章上传模块,供下载的文件上传,用户留言模块等。
问题:后台管理员权限分配
说明:现在系统有一个超级管理员,具有所有权限。现在想实现:超级管理员可以添加一般管理员,并且可以控制一般管理员的权限。比如控制某个一般用户只能上传文章,而不能上传图片等等,这该如何实现?求个思路,有源码实例更好啦!
另外,系统可能新增加其他模块(比如新增一个 图片上传模块等等),在新增了后台模块后,如何方便的配置原有管理员账号关于新增模块的相关权限?
可能说的不太清楚,有问题欢迎跟帖!
最高只能给100分,不知能不能加分了!
------解决方案--------------------
每个权限都需要加一个标记。
如:
发布贴子 1
添加管理员 2
图片上传 3
...........
如用户具备已上三个权限
存记数据库,是数组,(1;2;3)
用户只具备发布贴子权限 (2;)
具备发布贴子和图片上传权限 (2;3;)
...........
判断是否助有权限时,查找是否包含就行。。
不知我是明白??
------解决方案--------------------
建立一个模块表。如果对该模块有操作权利,为1.否则.0
1 0 1 1.很灵活的使用
------解决方案--------------------
建立一个模块表,模快表里面有个admin_group_id,记录那些是管理员可以看到的,那些是用户的..那一目了然比如
用户模快 1,3 --1表示最高管理员,3表示用户
上传模块 1,2 --1表示最高管理员,2表示一般管理员
------解决方案--------------------
建立一个模块表,模快表里面有个admin_group_id,记录那些是管理员可以看到的,那些是用户的..那一目了然比如
用户模快 1,3 --1表示最高管理员,3表示用户
上传模块 1,2 --1表示最高管理员,2表示一般管理员
------解决方案--------------------
phpgacl
------解决方案--------------------
探讨
每个权限都需要加一个标记。
如:
发布贴子 1
添加管理员 2
图片上传 3
...........
如用户具备已上三个权限
存记数据库,是数组,(1;2;3)
用户只具备发布贴子权限 (2;)
具备发布贴子和图片上传权限 (2;3;)
...........
判断是否助有权限时,查找是否包含就行。。
不知我是明白??
------解决方案--------------------
上面的多是简单权限
复杂的看权限角色模型,网上搜一下
------解决方案--------------------
使用组很方便
组表:
组id/组名
1/组1
2/组2
…………
权限表:
权限id/权限名
1/权限1
2/权限2
3/权限3
…………
组 权限关联表:
组id/权限id
1/1
1/2
2/2
2/4
…………
随意搭配,组1可能就是你的超管,组2是普管,你新建个组3,搭配一下,就是普通用户。新建组4,可能就是受限用户
------解决方案--------------------
看看dedecms的权限管理吧 我就是模仿的那种 我觉得非常灵活
------解决方案--------------------
探讨
谢谢各位的意见.
还有个问题:如果系统新增加其他模块(比如新增一个 图片上传模块等等),在新增了后台模块后,如何方便的配置原有管理员账号关于新增模块的相关权限?
------解决方案--------------------
我前两天也在弄这个权限问题,
自己设计了几个表
在zend auth下面使用的,搂主可以参考一下
/*角色表
-- id
-- 用户名
-- 密码
-- 工作组 a,b,c...
*/
drop table if exists role_acl;
create table role_acl (
id int(11) not null auto_increment,
username varchar(30) not null,
password varchar(20) not null,
work_group char(1) not null,
primary key (`id`)
) engine=innodb default charset=gbk;
/*工作组
-- id
-- 工作组 a,b,c...
-- 文字描述
*/
drop table if exists group_acl;
create table group_acl (
id int(11) not null auto_increment,
work_group char(1) not null,
group_desc varchar(60) not null,
primary key (`id`)
) engine=innodb default charset=gbk;
/* 角色 资源 动作 映射表
-- id
-- 工作组 a,b,c...
-- 资源代码
*/
drop table if exists mapped_acl;
create table mapped_acl (
id int(11) not null auto_increment,
work_group varchar(1) not null,
resource varchar(20) not null,
action varchar(20) not null,
primary key (`id`)
) engine=innodb default charset=gbk;
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product