我正在构建一个新的应用程序,我需要一个权限框架来配合它。 以下是我们需要支持的一个简单示例:
使用数据模型:
user
----
id
role
type
resource
----
id
name
type
我们希望能够设置一个访问规则,该规则说用户可能只知道与它们具有相同类型的所有资源,除非他们具有admin角色(在这种情况下,他们可以看到所有内容)。然后我们希望能够提取一个可搜索/可分页的“用户知道的所有资源”列表。 (假设有500,000个资源。)
我试着把它变成Zend_acl,但是我认为我可以在zend_acl中定义所有规则,它是逐个资源的,而且没有适当的支持来获取列表从中获取资源,当然不是以内存友好的方式(例如一次显示10个资源和分页)。
那么什么是支持基于关系的规则(而不是列表)的好的PHP权限框架呢?
答案 0 :(得分:3)
您可能仍然可以使用ACL,只要它可以扩展到适合您的目的。例如,Zend_Acl允许您使用write your own ACL assertions来覆盖基于资源的行为。您还可以扩展Zend_Acl以提供该用户可用的所有资源的列表。