Нет такой концепции, как предоставление доступа ко всему модулю в Drupal, только страницы, которые определит модуль. Обычно это делается путем реализации hook_menu()
для определения страниц и затем предоставления либо access callback
, либо access arguments
.
Первый определяет функцию, которая будет вызываться для принятия решения о доступе:
function mymodule_menu() {
$items['some/path'] = array(
'title' => 'Some Title',
'page callback' => 'mymodule_callback',
'access callback' => 'mymodule_some_path_access'
);
return $items;
}
function mymodule_some_path_access() {
global $user;
if ($user->foo == 'bar') {
// Access allowed, return TRUE
return TRUE;
}
// Access not allowed, return FALSE
return FALSE;
}
Второй определяет аргументы, которые будут переданы функции user_access
. Обычно это зависит от разрешений, которые предоставляет ваш модуль:
function mymodule_menu() {
$items['some/path'] = array(
'title' => 'Some Title',
'page callback' => 'mymodule_callback',
'access arguments' => array('access mymodule')
);
return $items;
}
function mymodule_perm() {
return array(
'access mymodule'
);
}
Во втором примере пользователю будет отказано в доступе, если у него нет разрешения 'access mymodule' (как определено в области прав доступа Drupal).
Надеюсь, это поможет