백엔드 개발 PHP 튜토리얼 求PHP网站靠山管理 管理员 权限控制 系统方案

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

Jun 13, 2016 am 10:30 AM
id NOT null varchar

求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;
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

이 Apple ID는 iTunes Store에서 아직 사용되지 않습니다. 수정 이 Apple ID는 iTunes Store에서 아직 사용되지 않습니다. 수정 Jun 10, 2024 pm 05:42 PM

이 Apple ID는 iTunes Store에서 아직 사용되지 않습니다. 수정

이벤트 뷰어에서 이벤트 ID 55, 50, 98, 140 디스크 오류 수정 이벤트 뷰어에서 이벤트 ID 55, 50, 98, 140 디스크 오류 수정 Mar 19, 2024 am 09:43 AM

이벤트 뷰어에서 이벤트 ID 55, 50, 98, 140 디스크 오류 수정

알리바바 ID는 어디서 찾을 수 있나요? 알리바바 ID는 어디서 찾을 수 있나요? Mar 08, 2024 pm 09:49 PM

알리바바 ID는 어디서 찾을 수 있나요?

이벤트 ID 4660: 개체가 삭제되었습니다. [수정] 이벤트 ID 4660: 개체가 삭제되었습니다. [수정] Jul 03, 2023 am 08:13 AM

이벤트 ID 4660: 개체가 삭제되었습니다. [수정]

Tencent Video ID 확인하는 곳 Tencent Video ID 확인하는 곳 Feb 24, 2024 pm 06:25 PM

Tencent Video ID 확인하는 곳

Redis 분산ID 솔루션은 무엇인가요? Redis 분산ID 솔루션은 무엇인가요? Jun 03, 2023 am 10:14 AM

Redis 분산ID 솔루션은 무엇인가요?

Linux에서 상위 프로세스 ID(PPID)를 찾는 방법 Linux에서 상위 프로세스 ID(PPID)를 찾는 방법 Mar 09, 2024 am 08:01 AM

Linux에서 상위 프로세스 ID(PPID)를 찾는 방법

정의되지 않음과 null은 무엇을 의미하나요? 정의되지 않음과 null은 무엇을 의미하나요? Nov 20, 2023 pm 02:39 PM

정의되지 않음과 null은 무엇을 의미하나요?

See all articles