【问题标题】:Is Zend_Acl necessary?Zend_Acl 是必要的吗?
【发布时间】:2009-12-18 00:30:20
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: php zend-framework zend-acl


    【解决方案1】:

    仅仅因为 ZF 中存在某些东西,并不意味着您必须不惜一切代价使用它。您不会因此获得奖励积分。如果您觉得 Zend_Acl 对您的用例来说太过分了,请使用您更简单的方法。这是完全可以接受的。

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

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

    所以,使用合适的:)

    【讨论】:

      猜你喜欢
      • 2014-07-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-30
      相关资源
      最近更新 更多