为我的PHP应用程序实现ACL

时间:2010-12-11 07:10:07

标签: php acl access-control

我的RealEstate PHP应用程序有以下用户组,

管理员, 版主 剂

我想为以下用户指定以下权限。

管理员 - >

  • 可以创建版主,
  • 可以创建代理,
  • 可以插入属性,
  • 可以更新属性,
  • 可以删除属性

因此,管理员将拥有所有权限,管理员将是superAdmin

我想为主持人分配有限的权限,从而为代理商分配。

我对如何为此创建数据库以及如何在我的PHP应用程序中实现它感到困惑。

谢谢

2 个答案:

答案 0 :(得分:13)

听起来你需要一个基于角色的访问控制系统。开发一个不是  真的是一个微不足道的任务,正如已经建议的那样,找到一个框架或现成的类 这项工作在开始时是值得的。

Role Based Access Control

http://www.tonymarston.net/php-mysql/role-based-access-control.html

http://www.sqlrecipes.com/database_design/fine_grained_role_based_access_control_rbac_system-3/

http://www.sitepoint.com/forums/showthread.php?threadid=162027

你应该创建一个表来定义所有类型的角色。

和一个用户表

通过链接两个表将不同的角色与不同的用户联系起来。 还有一些像这样......

答案 1 :(得分:0)

我过去做过这种方式的方法是在数据库中创建一个具有访问级别(管理员,主持人和代理)的用户表。

然后,如果您有一个菜单系统,请执行检查以查看哪些链接需要特权...管理员将看到所有链接,主持人只会看到他/她应该看到的链接,而代理只会看到什么他们应该看到。

此外,在您可能想要限制用户的页面上,您还需要检查用户访问级别。如果他们通过,他们将看到该页面,如果没有,他们将被重定向或者需要弹出一个javascript错误。

访问级别之类的东西可以帮助您将它存储在cookie中,因为您可以减少对数据库的调用。

希望这有帮助, 麦克