一个好的允许列出资源的PHP权限框架是什么?


What's a good PHP permission framework that allows listing resources?

我正在构建一个新的应用程序,我需要一个权限框架来配合它。下面是我们需要它支持的一个快速示例:

数据模型:

user
----
id
role
type
resource
----
id
name
type

我们希望能够设置一个访问规则,规定用户只能知道与他们相同类型的所有资源,除非他们具有admin角色(在这种情况下,他们可以看到所有资源)。然后我们希望能够拉出一个可搜索/可分页的列表,其中包含"该用户知道的所有资源"。(假设有50万个资源)

我试图将其硬塞到Zend_acl中,但是虽然我认为我可以在Zend_acl中定义所有规则,但它是基于资源的,并且没有适当的支持从其中获取列表资源,当然不是以内存友好的方式(例如一次显示10个资源和分页)。

那么什么是一个好的PHP权限框架,支持基于关系的规则(而不是列表),比如这些?

您可能仍然可以使用ACL,只要它可以扩展以满足您的目的。例如,Zend_Acl允许您编写自己的ACL断言,这些断言可用于覆盖基于资源的行为。您还可以扩展Zend_Acl,以提供该用户可用的所有资源的列表。