我正在开发一个新应用程序,需要一个权限框架来支持它。以下是一个我们需要支持的示例:
使用数据模型:
user
----
id
role
type
resource
----
id
name
type
我们希望能够设置一个访问规则,即用户只能了解与他们相同类型的所有资源,除非他们拥有管理员角色(在这种情况下,他们可以查看所有内容)。然后,我们希望能够获取“此用户知道的所有资源”的可搜索/可分页列表。(假设有500,000个资源。)
我尝试将其塞入Zend_acl中,但是虽然我认为我可以在zend_acl中定义所有规则,但它是基于每个资源的,没有适当的支持以内存友好的方式获取资源列表(例如一次显示10个资源并进行分页)。
那么,有哪些良好的PHP权限框架支持基于关系的规则(而不是列表),例如这些规则?