Все, что вам нужно, это hook_access
Если вы хотите управлять доступом ко всем узлам, это можно сделать с помощью небольшой настройки.Вы можете использовать hook_menu_alter
, чтобы добавить свою пользовательскую функцию контроля доступа в «узел /% узел».Это может выглядеть так:
function module_menu_alter($items) {
$items['node/%node']['access callback'] = 'module_node_access';
}
function module_node_access($op, $node) {
if ($special_case) {
return FALSE;
}
elseif ($special_case_2) {
return TRUE;
}
// Default, let Drupal handle it.
return return node_access($op, $node);
}