Navegação Zend e RBAC

Estou desenvolvendo um site baseado em ZF2. Eu tenho uma navegação principal que permanece mesmo independentemente do status do visitante / usuário. Precisa adicionar outro componente / nav, que dependerá do status e da função do usuário. Para um visitante, os itens serão

registoEntrarEN (Na verdade, uma lista suspensa, com outra linguagem disponível)

Para um usuário normal logado, ele exibirá

PerfilSairPT (Seletor de idioma como mencionado acima)

E para alguns usuários com funções / permissões específicas, haverá itens adicionais

Eu quero usar o RBAC, como ACL parece inchado, e também apenas para verificar se o atual usuário / função logado tem itens adicionais, eu preciso carregar o ACL completo (e temos mais de 15 tipos diferentes de papéis).

Passei algum tempo pensando em como consegui isso, seguindo algumas idéias que tenho.

Eu crio um container de navegação vazio e crio uma fábrica. Na fábrica, acesso a Autenticação e o RBAC e adiciono as páginas dependendo do status / função do usuário.Eu crio uma navegação totalmente carregada com todas as páginas possíveis e, em seguida, na fábrica, com a ajuda de Autenticação e RBAC, oculto as páginas que não quero mostrar.A opção rd é usar um auxiliar de visualização que obterá o RBAC via ServiceLayer e gerará a navegação. (Como discutido emZF2 como exibir tweets no layout eZF2: Adicionar um widget de Login no modelo.Ou posso criar um plugin de controlador ou apenas um método em module.php e ouvir o evento MVC_Render ou MVC_Dispatch e gerar a navegação desejada e adicionar a saída a uma variável de exibição.

PS: Eu preciso usar um parcial como eu preciso adicionar alguma classe CSS para a seção de seleção de idioma. Além disso, a navegação será exibida no layout.

questionAnswers(1)

yourAnswerToTheQuestion