Drupal Custom Node Access - PullRequest
       10

Drupal Custom Node Access

1 голос
/ 09 ноября 2010

Мне нужен сложный доступ к узлам в Drupal, и я решил использовать свой собственный модуль. Какие хуки мне нужно посмотреть, чтобы разрешить доступ к узлам. Есть ли у вас примеры.

Ответы [ 2 ]

5 голосов
/ 10 ноября 2010

Все, что вам нужно, это 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);
}
1 голос
/ 10 ноября 2010

Это неприятно в Drupal 6 - hook_access может настроить доступ только к типам узлов, созданным модулем, частью которого он является, и hook_node_access является новым в Drupal 7.

К сожалению,лучшее решение, которое я нашел для этого, - это исправление ядра, которое добавляет access op к hook_nodeapi.Подробности можно найти здесь .

...