Тонкая настройка прав материалов с помощью hook_node_access()

Хук hook_node_access() предназначен для тонкой настройки прав пользователей при работе с материалами. Например с помощью него можно дать одному из пользователей права на редактирование определённого типа материалов (в то время, как другие пользователи такого права не имеют):
function mymodule_node_access($node, $op, $account) {
  $type = is_string($node) ? $node : $node->type;
  if ($type == 'page' && $op == 'update' && $account->uid == 123) {
    return NODE_ACCESS_ALLOW;
  }
}

или например запретить пользователям, зарегистрированным менее суток назад, создавать любые материалы:
function mymodule_node_access($node, $op, $account) {
  if ($op == 'create' && REQUEST_TIME - $account->created < 60*60*24) {
    return NODE_ACCESS_DENY;
  }
}

Замечания:

— хук не вызывается для юзера #1, т.е. ему всё разрешено
— хук не вызывается при просмотре списка нод, например в RSS, на странице node или в блоке последних материалов

Написанное актуально для
Drupal 7
Теги:
drupal api, работа с нодами, разграничение доступа
Добавлено: 30 Июля 2018 07:47:25 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...