如何在PHP中处理具有不同权限的不同角色?

时间:2010-05-24 20:26:23

标签: php roles

我想知道如何为PHP中的不同用户创建不同的“用户角色”。 例如:

管理员可以创建所有类型的用户,添加,查看,操纵数据,删除管理员,查看者和工作人员等。

经理只能创建,工人和观众,可以添加和查看数据, 工作人员无法创建新用户,但只能添加数据和查看数据,

查看者只能查看工作人员,经理和管理员添加到数据库中的数据。

我虽然最好使用不同的会话,如:

$_SESSION['admin']
$_SESSION['manager']
$_SESSION['worker']
$_SESSION['viewvers']

并且对于每个页面检查它们中的哪一个具有真值或是值,但我想知道它们是如何在真实和大项目中进行的?有没有别的办法???

3 个答案:

答案 0 :(得分:2)

取决于事物的宏观模式(希望你们都得到了,哈哈)。通常,用户具有关于它们是什么级别的标识符。例如'status'或'type'字段。

$ _ SESSION [ '与loggedInUser'] [ '类型']

该类型通常是数字。 1可能是普通用户,2可能是版主,3名管理员等

其余的是您在代码中管理它的方式。像cakephp这样的框架可以让你通过他们的auth对象访问登录用户,你可以拥有你想要的任何数据:)

我知道这是非常肤浅的,但唉,这个问题也是如此。希望它有所帮助:)

答案 1 :(得分:1)

实现用户权限的常用方法是“用户级别”,其中每个用户级别都可以由int表示。例如:

0 = guest, no privileges
1 = standard user, read-only access
9 = power user, read/write access
10 = admin, all access

在整个应用程序中,您可以检查用户访问级别并相应地允许或拒绝访问。如果您的某些区域的特权不一定是分层的,那么它会变得更加复杂。

在这种情况下,您可以检查您的会话变量(在用户经过身份验证之后),例如$_SESSION['user_level'];

答案 2 :(得分:0)

你应该在$_SESSION['Role']中扮演角色并在登录时填写。然后每次检查此角色是否具有执行操作的权限。