2015-06-12 5 views
0

У меня есть приложение с областью администратора, для которой требуется отдельное меню навигации с основного сайта, мне также нужно ввести ACL, чтобы администратор не мог видеть определенные пункты меню.Вторая навигация не впрыскивает ACL

Я создал административную навигационную фабрику.

namespace Freedom\Zend\Navigation\Service; 

use Zend\Navigation\Service\DefaultNavigationFactory; 

class AdminNavigationFactory extends DefaultNavigationFactory 
{ 
    protected function getName() 
    { 
      return 'admin_navigation'; 
    } 
} 

и добавить его к менеджеру службы

'service_manager' => array(
     'factories' => array(
      'admin_navigation' => 'Freedom\Zend\Navigation\Service\AdminNavigationFactory' 
     ), 
    ), 

Это все работает отлично, и я могу увидеть меню, проблема в том, когда я пытаюсь привнести ACL. В моем admin module.php у меня есть

public function getViewHelperConfig() 
    { 
     return array(
      'factories' => array(
       'admin_navigation' => function(HelperPluginManager $pluginManager) { 
        $serviceManager = $pluginManager->getServiceLocator(); 

        $acl = new Acl(); 

        $auth = $serviceManager->get('Zend\Authentication\AuthenticationService'); 

        $role = $acl::DEFAULT_ROLE; 

        if ($auth->hasIdentity()) { 
         $user = $auth->getIdentity(); 
         $role = $user->getUserRole()->getRole(); 
        } 

        $navigation = $pluginManager->get('Zend\View\Helper\Navigation'); 

        $navigation->setAcl($acl)->setRole($role); 
        return $navigation; 
       } 
      ) 
     ); 
    } 

Однако функция admin_navigation выше не вызывается. В моей навигации по умолчанию в моем модуле приложения у меня почти идентичный код, и функция называется ok.

Кто-нибудь знает, почему функция admin_navigation не вызывается?

Большое спасибо заранее.

ответ

 Смежные вопросы

  • Нет связанных вопросов^_^