function menu_admin_per_menu_filter_parent_options in Menu Admin per Menu 8
Removes menu items for menus a user does not have permission to access.
Parameters
\Drupal\Core\Session\AccountInterface $account: The user to check for access.
array $options: An array of menu item labels keyed by menu item ID.
Return value
array Filtered menu item labels keyed by menu item ID.
3 calls to menu_admin_per_menu_filter_parent_options()
- menu_admin_per_menu_form_menu_link_content_form_alter in ./
menu_admin_per_menu.module - Implements hook_form_ID_alter() for 'menu_link_content_form'.
- menu_admin_per_menu_form_menu_link_edit_alter in ./
menu_admin_per_menu.module - Implements hook_form_ID_alter() for 'menu_link_edit'.
- menu_admin_per_menu_form_node_form_alter in ./
menu_admin_per_menu.module - Implements hook_form_ID_alter() for 'node_form'.
File
- ./
menu_admin_per_menu.module, line 94 - Module file for menu_admin_per_menu.
Code
function menu_admin_per_menu_filter_parent_options(AccountInterface $account, array $options) {
/** @var \Drupal\menu_admin_per_menu\MenuAdminPerMenuAccessInterface $allowedMenusService */
$allowedMenusService = \Drupal::service('menu_admin_per_menu.allowed_menus');
$allowed_menus = $allowedMenusService
->getPerMenuPermissions($account);
foreach ($options as $key => $option) {
list($menu) = explode(':', $key, 2);
if (!in_array($menu, $allowed_menus)) {
unset($options[$key]);
}
}
return $options;
}