Yii复杂的授权

时间:2014-01-05 22:43:43

标签: php yii authorization rbac

我正在使用YII框架。

假设我们有:

  • VideoController
  • PhotoController
  • ContentController
  • CategoryController

我需要的是根据控制器组权限创建用户访问控制系统。我的意思是,让我们说,超级管理员名为john的用户可以访问所有控制器,而作为编写者角色用户的名为jessy的用户只能访问内容控制器。

我google了很多。并找到了一些关于RBAC的博客文章,其中非常复杂。关于这个有什么好的博文吗?有什么建议?

1 个答案:

答案 0 :(得分:0)

首先,恕我直言RBAC简化了您的生活。理解或实施并不复杂。

就实现而言,我建议使用现成的扩展来管理您的RBAC树,即使它们没有错误(它们确实完成了工作 - 这是管理树。它们有UI问题,至少我我的口味)。结帐RBAM和SRBAC。

现在,对于您的主要活动,我会按如下方式组织您的权限树:

admin (role)
^
|
-- Content Editor (role)  <----------------
|    ^                                     |
|    |                                     |
|    -- Create content (task)              |
|    -- Update content (task)              -< Authenticated user (role) <--- Guest user (role)
|    -- Delete content (task)              |                                  ^
|    -- and so on...                       |                                  |
|                                          |                                  -- view content (task)                                         |
-- Category Editor (role) <----------------                                   -- login (task)
    ^
    |
    -- Create category (task)
    -- and so on...

上面的示例RBAC树演示了 roles ,它们正如您所想象的那样,并且可以从其他角色继承,就像您在树结构和“包含”任务中所期望的那样。 这只是组织权限/授权树的一种方法。 TIMTOWTDI ...... 我也跳过详细说明“认证用户”角色的有意义的任务,但当然可能会有这样的。

还可以查看this post