Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Design patterns 基于资源的ACL与基于控制器的ACL_Design Patterns_Zend Framework_Acl - Fatal编程技术网

Design patterns 基于资源的ACL与基于控制器的ACL

Design patterns 基于资源的ACL与基于控制器的ACL,design-patterns,zend-framework,acl,Design Patterns,Zend Framework,Acl,管理对控制器操作的访问的传统方法是为每个/module/controller/action创建资源(字符串标识符),然后检查controller插件中的ACL 最近我发现了非常方便的Zend\u Acl\u Resource\u接口,它可以用来控制对实现它的任何类的访问。这样,任何模型、表单或其他应用程序元素都可能成为ACL资源。这是一种非常普通的方法,因为这样应用程序资源就变成了ACL资源 对于条令侦听器,这变得非常容易,因此我根本不需要控制器中的任何附加逻辑 现在,我可以检查ACL,例如,无

管理对控制器操作的访问的传统方法是为每个/module/controller/action创建资源(字符串标识符),然后检查controller插件中的ACL

最近我发现了非常方便的
Zend\u Acl\u Resource\u接口
,它可以用来控制对实现它的任何类的访问。这样,任何模型、表单或其他应用程序元素都可能成为ACL资源。这是一种非常普通的方法,因为这样应用程序资源就变成了ACL资源

对于条令侦听器,这变得非常容易,因此我根本不需要控制器中的任何附加逻辑

现在,我可以检查ACL,例如,无论何时实例化任何表单,并最终重定向到登录页面。
但是,如何隐藏使用受限表单、模型等的Zend导航项。

我是否也需要传统的、面向控制器的方法?每个导航元素是否需要单独的资源标识符?使用基于资源的ACL有什么好处?

您可以将相应的资源id分配给Zend_导航页面项目,将预定义的ACL和当前登录用户的角色设置为Zend_导航实例,导航助手在呈现前检查ACL。请参见此处的示例

谢谢,但您应该仔细阅读问题。考虑下面的情况:我有一个页面/创建有两种形式(例如,搜索和创建),它们的资源标识符占用资源并创建资源。我应该在导航中使用哪一个?我仍然需要为url访问创建新资源。。。