2011-12-14 38 views
3

我正在构建一个新的应用程序,我需要一个权限框架来支持它。 下面是我们需要支持的事情之一的一个简单的例子:什么是允许列出资源的好的PHP权限框架?

与数据模型:

user 
---- 
id 
role 
type 

resource 
---- 
id 
name 
type 

我们希望能够设置一个说,一个用户可能只知道一个访问规则关于与它们具有相同类型的所有资源,除非它们具有管理员角色(在这种情况下,他们可以看到所有内容)。然后我们希望能够拉出“这个用户知道的所有资源”的可搜索/可分页列表。 (假设有500,000个资源)。

我试图将这个角色放到Zend_acl中,但是我认为我可以在zend_acl中定义所有规则,它是按资源分配的,并且没有适当的支持从中获得资源的列表,并且当然不是以内存友好的方式(例如一次显示10个资源和分页)。

那么,支持基于关系的规则(而不是列表)的良好PHP权限框架是什么呢?

+0

http://stackoverflow.com/questions/370371/recommend-a-php-acl-class可能的重复。 – cmbuckley 2011-12-14 21:14:45

+0

我认为没有,因为我相信ACL不符合我的需求。除非我错过了一种方法,否则就需要一个基于规则的系统,而不是基于离散列表的系统。 我接受关于如何在ACL中实现我的目标的建议,如zend_acl。 :) – VexedPanda 2011-12-14 21:24:25

回答

3

您可能仍然可以使用ACL,只要它可以扩展以适合您的目的。例如,Zend_Acl允许您使用write your own ACL assertions来覆盖基于资源的行为。您还可以扩展Zend_Acl以提供该用户可用的所有资源的列表。