Zend_Acl是必要的吗?

时间:2009-12-17 15:35:25

标签: php zend-framework zend-acl

我有一个基于角色的权限系统,我不确定Zend_Acl是否必要,所以我想问我是不是。

有问题的网络应用程序没有单独的管理界面,任何人都可以访问所有控制器/操作。所以我无法想象在这样一个开放的系统中我可以称之为“资源”。

但是某些用户角色可以看到未按用户ID过滤的网格 - 因此超级管理员会看到所有数据, 和“x admins”查看所有“x”数据。

在这种情况下,Zend_acl系统是否过量?如果没有它,事情会很简单,我只是在init()中获得用户角色并在控制器的某些部分检查它。

1 个答案:

答案 0 :(得分:4)

仅仅因为ZF中存在某些东西,并不意味着你必须花费任何成本。你没有获得奖励积分。如果您觉得Zend_Acl对于您的用例来说有点过分,请使用更简单的方法。这完全可以接受。

实际上,在我的某个应用中,我使用ActionHelper来检查用户的角色。帮助程序有一个方法requireRole(),它接受​​所需的角色作为字符串。现在,当我需要限制一个动作时,我只是简单地调用这个辅助方法。如果我需要限制整个控制器,我将调用放在init()方法中。缺点是,访问控制不是集中的。

在另一个应用程序中,我只有一个需要访问限制的控制器。在该应用程序中,我使用ControllerPlugin来检查所请求的控制器是否是受限制的控制器,以及用户是否具有所需的角色。这也很好,我可以根据需要在支票上添加额外的控制器。

所以,使用什么适合:)