У меня есть меню, сгенерированное модулем (с использованием файла yaml) с 5 пунктами меню.Мои требования не позволяют мне ограничивать видимость элементов меню по ролям, поскольку роли могут добавляться динамически. Поэтому я должен сделать это, используя только разрешения.
Что я пробовал
(1) Ограничение доступа к элементам меню с использованием разрешений маршрута — это показывает запрещенную страницу, но все же позволяет отображать ограниченный элемент меню.
Пожалуйста, смотрите мои фактические файлы ниже:
portal_hrm_core.links.menu.yml
portal_hrm_core.hrm_link:
title: 'Менеджер по персоналу'
имя_маршрута: portal_hrm_core.hrm_link
имя_меню: hcm
развернуто: ИСТИНА
port_hrm_core.routing.yml
портал_hrm_core. hrm_ссылка:
путь: '/admin/hrm'
значения по умолчанию:
_controller: '\Drupal... systemAdminMenuBlockPage'
_title: 'Управление персоналом'
требования:
_permission: 'доступ к hrm_core_job+access_hrm_core_employee'
(2) Вкладные модули - Видимость пункта меню
и Пункт меню на роль
Оба они основаны только на ролях и не могут поддерживать разрешения.
Я знаю, что могу перейти на очень низкий уровень и использовать что-то вроде hook_preprocess_menu
но кажется тяжелым для такого простого требования, учитывая, сколько раз этот хук может быть вызван.
Итак, люди, пожалуйста, какие-либо дальнейшие предложения?
Спасибо