Zend Navigation y RBAC

Estoy desarrollando un sitio basado en ZF2. Tengo una navegación principal que permanece igual independientemente del estado del visitante / usuario. Debe agregar otro componente / nav, que dependerá del estado y la función del usuario. Para un visitante los artículos serán

RegistroIniciar sesiónEN (En realidad un menú desplegable, con otro idioma disponible)

Para un usuario normal que ha iniciado sesión, se mostrará

PerfilCerrar sesiónEN (selector de idioma como se mencionó anteriormente)

Y para algunos usuarios con roles / permisos específicos habrá elementos adicionales

Quiero usar RBAC, ya que la ACL parece inflada, y también solo para comprobar si el usuario / rol registrado actualmente tiene elementos adicionales, necesito cargar la ACL completa (y obtuvimos más de 15 tipos diferentes de roles).

Pasé un tiempo pensando cómo lo he logrado, así que a continuación hay algunas ideas que tengo.

Creo un contenedor de navegación vacío, y creo una fábrica. En la fábrica, accedo a Autenticación y RBAC y añado las páginas según el estado / rol del usuario.Creo una navegación completamente cargada con todas las páginas posibles, luego en la fábrica, con la ayuda de Autenticación y RBAC Oculto las páginas que no quiero mostrar.La opción rd es utilizar un asistente de visualización que obtendrá RBAC a través de ServiceLayer y generará la navegación. (Como se discute enZF2 cómo mostrar tweets en diseño yZF2: Añadir un widget de inicio de sesión en la plantilla.O puedo crear un controlador-complemento o simplemente un método en module.php, y escuchar el evento MVC_Render o MVC_Dispatch y generar la navegación deseada y agregar la salida a una variable de vista.

PD: Necesito usar un parcial porque necesito agregar alguna clase de CSS a la sección de selección de idioma. También se mostrará la navegación en el diseño.

Respuestas a la pregunta(1)

Su respuesta a la pregunta