基于php角色的访问控制系统 - 基于页面的权限

时间:2014-01-15 18:21:00

标签: php software-design role-base-authorization

我打算设计一个系统。系统有3种用户类型。管理员,经理,开发人员。 应用程序包含100个php UI页面。

  1. 数据库表就像这样(页面,管理员,经理,开发人员)。 page是页面名称,admin,manager,developer是boolean fields。如果特定字段为1或者真实角色具有访问权限。
  2. 现在我需要将数据库与所有100页同步。我知道登录用户所属的角色。但我不知道如何传递页面并将其与表匹配以检查特定用户是否具有访问权限。
  3. 我的计划是放 checkpermission($ _ SERVER ['PHP_SELF'],$ role);到每个页面。 我该怎么做呢? 如果我把这行放到header.php是没关系的。设计会不好?

    我的主要关注点是可扩展性。他希望在不改变的情况下插入另一个站点。我们也想给一个页面。管理员可以使用该页面来授予,删除权限。将子目录添加到权限树。

1 个答案:

答案 0 :(得分:0)

$ROLID = $_SESSION['ROLID'];
if($ROLID == 2 || $ROLID == 3) header('Location: 'www.foo.com/home.php');

因此,管理员是角色ID 1,可以让他们访问任何页面。如果角色ID为2或3的用户(经理或开发人员)将被重定向到主页。

将此代码放在页面顶部。