php创建模块化管理功能

时间:2012-12-11 17:47:53

标签: php html sql web admin

我正在尝试在我的网站上创建模块化管理功能,并且我有一些关于如何轻松查找具有特定页面管理员权限的问题(我想要它以便我可以更改管理员权限)到网站的特定部分,以免给任何一个人太多的控制权。)

我最初考虑过白名单,但我觉得处理起来会非常难看,所以我开始考虑构建一个SQL表,其中包含成员ID号和他们拥有管理控制权的页面(也许他们在多大程度上拥有该页面的管理员权限。)

为了实现这一点,我考虑了3列,第一列是ID,第二列是以逗号分隔的页面,第三列是带有标记位的字节,用于特定的管理功能。当用户登录时,它会将信息存储在会话中,对于这些页面,他们拥有“快速访问”管理权限的页面,以便在页面上显示某些内容(例如创建新消息,修改帖子,删除帖子等) ...)

这是一种可行/有效的方法吗?是否有关于如何进行授权和检查管理员权限的标准?

[编辑]我在寻找,我认为对每个动作进行检查/查找比在会话中保存信息更好,但其余的前提是否有声音?

1 个答案:

答案 0 :(得分:2)

这是我们几年前作为课堂活动所做的事情 使用DB管理用户的角色

Table user::
  username      password      Role
    1             123          REGULAR
    2             123          MOD
    3             123          ADMIN

Table Role::
  Role-Name      Permissions
   ADMIN           WRITE,DELETE, APPEND
   MOD             WRITE,APPEND
   REGULAR        WRITE

然后有一个读取权限,这是所有人共同的。并且有一个特殊的访客用户只能阅读。我们使用全文搜索来检查用户角色是否具有博客中的特定权限。

例如,如果用户是管理员,他可以看到他面板上的所有三个按钮。它是使用PHP完成的,在,分割后,权限保留在数组中。

$sql = "Select Permissions from ROLE where Role-name = (select ROLE from user where username = '1')"
$permission[] = split(mysql_query($sql), ',');

<div id = command_bar>
        <a> ...
            some common buttons..</a>
         foreach values in $permission[]
            { <a href='url?option=permission'> permission </a> }

上面创建了类似<a href="url/?option=APPEND">APPEND</a>的内容,使用户能够执行这些角色。这不是一个实际的项目,而是一个学习的课堂活动。