Source of file AclListener.php
Size: 1,626 Bytes - Last Modified: 2014-03-12T23:21:18+01:00
/home/theseer/Downloads/ZendFramework-2.3.0/library/Zend/View/Helper/Navigation/Listener/AclListener.php
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 | <?php /** * Zend Framework (http://framework.zend.com/) * * @link http://github.com/zendframework/zf2 for the canonical source repository * @copyright Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com) * @license http://framework.zend.com/license/new-bsd New BSD License */ namespace Zend\View\Helper\Navigation\Listener; use Zend\EventManager\Event; /** * Default Access Control Listener */ class AclListener { /** * Determines whether a page should be accepted by ACL when iterating * * - If helper has no ACL, page is accepted * - If page has a resource or privilege defined, page is accepted if the * ACL allows access to it using the helper's role * - If page has no resource or privilege, page is accepted * - If helper has ACL and role: * - Page is accepted if it has no resource or privilege. * - Page is accepted if ACL allows page's resource or privilege. * * @param Event $event * @return bool */ public static function accept(Event $event) { $accepted = true; $params = $event->getParams(); $acl = $params['acl']; $page = $params['page']; $role = $params['role']; if (!$acl) { return $accepted; } $resource = $page->getResource(); $privilege = $page->getPrivilege(); if ($resource || $privilege) { $accepted = $acl->hasResource($resource) && $acl->isAllowed($role, $resource, $privilege); } return $accepted; } } |