Zend Navigation и RBAC

Я занимаюсь разработкой сайта на основе ZF2. У меня есть основная навигация, которая остается неизменной независимо от статуса посетителя / пользователя. Нужно добавить другой компонент / nav, который будет зависеть от пользователя 'статус и роль. Для посетителя товары будут

регистрАвторизоватьсяEN (На самом деле выпадающий, с другим доступным языком)

Для зарегистрированного обычного пользователя будет отображаться

ПрофильВыйтиEN (Выбор языка, как указано выше)

А для некоторых пользователей с конкретными ролями / разрешениями будут дополнительные пункты

Я хочу использовать RBAC, так как ACL кажется раздутым, а также просто для того, чтобы проверить, есть ли у текущего вошедшего в систему пользователя / роли дополнительные элементы, мне нужно загрузить полный ACL (и мы получили около 15+ различных типов ролей).

Я потратил некоторое время на размышления о том, как мне этого добиться, поэтому вот несколько идей, которые у меня есть.

Я создаю пустой контейнер навигации и создаю фабрику. На заводе я получаю доступ к Аутентификации и RBAC и добавляю страницы в зависимости от пользователя.статус / роль.Я создаю полностью загруженную навигацию со всеми возможными страницами, затем на заводе, с помощью аутентификации и RBAC, я скрываю страницы, которые я нене хочу показывать.Опция rd - использовать помощника вида, который получит RBAC через ServiceLayer и сгенерирует навигацию. (Как обсуждено вZF2, как отображать твиты в макете а такжеZF2: добавить виджет входа в шаблон.Или я могу создать контроллер-плагин или просто метод в module.php, прослушать событие MVC_Render или MVC_Dispatch, сгенерировать нужную навигацию и добавить вывод в переменную представления.

PS: мне нужно использовать частичное, так как мне нужно добавить класс CSS в раздел выбора языка. Также навигация будет отображаться в макете.

Ответы на вопрос(1)

Ваш ответ на вопрос