【问题标题】:php role based access control system - permission on pages basisphp 基于角色的访问控制系统 - 基于页面的权限
【发布时间】:2014-01-15 18:20:59
【问题描述】:

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

  1. 数据库表是这样的(页面、管理员、经理、开发人员)。 page 是页面名称,admin、manager、developer 是布尔字段。如果特定字段为 1 或 true 角色具有访问权限。
  2. 现在我需要将数据库与所有 100 个页面同步。我知道登录用户属于哪个角色。但我不知道如何传递页面并将其与表匹配以检查特定用户是否具有访问权限。

我的计划是 checkpermission($_SERVER['PHP_SELF'], $role);到每一页。 我应该如何正确地做到这一点? 如果我把这一行放到 header.php 中可以吗?会不会是糟糕的设计?

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

【问题讨论】:

  • 这是糟糕的设计。让它发挥作用,不要再担心设计了。

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


【解决方案1】:
$ROLID = $_SESSION['ROLID'];
if($ROLID == 2 || $ROLID == 3) header('Location: 'www.foo.com/home.php');

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

将此代码放在页面顶部。

【讨论】:

猜你喜欢
  • 2021-09-16
  • 1970-01-01
  • 2020-06-22
  • 2014-01-25
  • 1970-01-01
  • 2010-09-11
  • 2013-08-28
  • 2015-11-20
  • 2011-01-18
相关资源
最近更新 更多