0

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

我最初考虑白名单,但认为它会变得很难处理,所以我开始考虑构建一个 SQL 表来保存成员 ID 号和他们拥有管理控制权的页面(也许他们在多大程度上拥有管理员权限在该页面上)。

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

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

[编辑] 我正在寻找,并且我认为对每个操作进行检查/查找可能比在会话中保存信息要好,但是前提的其余部分是否合理?

4

1 回答 1

2

这是我们几年前在课堂活动中所做的事情。
使用数据库管理用户角色

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>,让用户能够扮演角色。这不是一个实际的项目,而是一个学习的课堂活动。

于 2013-02-22T20:00:53.607 回答