首页 后端开发 php教程 求PHP网站靠山管理 管理员 权限控制 系统方案

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

Jun 13, 2016 pm 01:24 PM
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

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

此 Apple ID 尚未在 iTunes Store 中使用:修复 此 Apple ID 尚未在 iTunes Store 中使用:修复 Jun 10, 2024 pm 05:42 PM

使用AppleID登录iTunesStore时,可能会在屏幕上抛出此错误提示“此AppleID尚未在iTunesStore中使用”。没有什么可担心的错误提示,您可以按照这些解决方案集进行修复。修复1–更改送货地址此提示出现在iTunesStore中的主要原因是您的AppleID个人资料中没有正确的地址。步骤1–首先,打开iPhone上的iPhone设置。步骤2–AppleID应位于所有其他设置的顶部。所以,打开它。步骤3–在那里,打开“付款和运输”选项。步骤4–使用面容ID验证您的访问权限。步骤

修复事件ID 55,50,98,140磁盘错误在事件查看器 修复事件ID 55,50,98,140磁盘错误在事件查看器 Mar 19, 2024 am 09:43 AM

若您在Windows11/10的事件查看器中发现事件ID55、50、140或98,或遇到磁盘文件系统结构损坏且无法使用的错误,请按照以下指南解决此问题。什么是事件55,磁盘上的文件系统结构损坏和不可用的意思?第55届会议,Ntfs磁盘上的文件系统结构损坏且无法使用。请在卷上运行chkMSK实用程序当NTFS无法将数据写入事务日志时,会触发事件ID55的错误,这将导致NTFS无法完成无法写入事务数据的操作。这种错误通常发生在文件系统损坏的情况下,可能是由于磁盘上存在坏扇区或文件系统对磁盘子系统的不

阿里巴巴id在哪里看 阿里巴巴id在哪里看 Mar 08, 2024 pm 09:49 PM

在阿里巴巴软件中,一旦您成功注册一个账号,系统就会为您分配一个独特的ID,这个ID将作为您在平台上的身份标识。但是对于许多用户来说,他们会想要查询自己的ID,但是却不知道该如何操作。那么本站小编带来下文中,就将为大家带来详细的攻略步骤介绍,希望能帮助到大家!阿里巴巴id在哪里看答案:【阿里巴巴】-【我的】。1、首先打开阿里巴巴软件,进入到首页中后我们需要点击右下角的【我的】;2、然后来到我的页面中后我们在页面的上方就可以看到【id】了;阿里巴巴id和淘宝一样吗阿里巴巴id和淘宝id不一样,但是二

事件 ID 4660:已删除对象 [修复] 事件 ID 4660:已删除对象 [修复] Jul 03, 2023 am 08:13 AM

我们的一些读者遇到了事件ID4660。他们通常不确定该怎么做,所以我们在本指南中解释。删除对象时通常会记录事件ID4660,因此我们还将探索一些实用的方法在您的计算机上修复它。什么是事件ID4660?事件ID4660与活动目录中的对象相关,将由以下任一因素触发:对象删除–每当从ActiveDirectory中删除对象时,都会记录事件ID为4660的安全事件。手动更改–当用户或管理员手动更改对象的权限时,可能会生成事件ID4660。更改权限设置、修改访问级别或添加或删除人员或组时,可能会发生这种情

腾讯视频id在哪里查看 腾讯视频id在哪里查看 Feb 24, 2024 pm 06:25 PM

腾讯视频id在哪里查看?腾讯视频APP中是有专属的id,但是多数的用户不知道如何查看腾讯视频id,接下来就是小编为用户带来的腾讯视频id查看方法图文教程,感兴趣的用户快来一起看看吧!腾讯视频使用教程腾讯视频id在哪里查看1、首先打开腾讯视频APP,主页面右下角【个人中心】进入到专区;2、之后进入到个人中心页面,选择【设置】功能;3、然后在设置页面,点击最下方【退出账号】;4、最后在下图所示的页面即可查看到专属的id号。

c语言中null和NULL的区别是什么 c语言中null和NULL的区别是什么 Sep 22, 2023 am 11:48 AM

c语言中null和NULL的区别是:null是C语言中的一个宏定义,通常用来表示一个空指针,可以用于初始化指针变量,或者在条件语句中判断指针是否为空;NULL是C语言中的一个预定义常量,通常用来表示一个空值,用于表示一个空的指针、空的指针数组或者空的结构体指针。

vue获取不到id属性怎么办 vue获取不到id属性怎么办 Jan 29, 2023 pm 02:03 PM

vue获取不到id属性是因为将getElementById用在了“created()”钩子函数中,而Vue尚未完成挂载;其解决办法就是将“created() {let serachBox = document.getElementById('searchBox');...}”代码迁移到“mounted()”钩子函数中即可。

undefined和null是什么意思 undefined和null是什么意思 Nov 20, 2023 pm 02:39 PM

在JavaScript 中,undefined和null都代表着“无”的概念:1、undefined 表示一个未初始化的变量或一个不存在的属性,当声明了一个变量但没有对其赋值时,这个变量的值就是undefined,访问对象中不存在的属性时,返回的值也是undefined;2、null表示一个空的对象引用,在某些情况下,可以将对象的引用设置为null,以便释放其占用的内存。

See all articles