Вы можете реализовать hook_perm
, чтобы предоставить набор пользовательских разрешений для вашего модуля:
function mymodule_perm() {
return array('my module permission');
}
А затем в вашем пункте меню в hook_menu
используйте access arguments
, как вы предлагаете:
function mymodule_menu() {
$items['admin/setting/modname/custom1'] = array(
'title' => 'Settings',
'page callback' => 'mymodule_callback',
'access arguments' => array('my module permission')
);
return $items;
}
После того, как вы установили свой модуль / очистили кеш Drupal, перейдите на страницу администрирования разрешений и предоставьте ваше новое разрешение требуемой роли, и пользователи с этой ролью (теоретически) смогут получить к ней доступ.
Я говорю «в теории», потому что если ваш путь находится в admin/
, роли также потребуется разрешение access administration pages
для просмотра страницы, что может привести к потенциальным проблемам безопасности.Лучше всего было бы изменить путь куда-либо, кроме admin/
, чтобы избежать необходимости иметь дело с этим.