hook_access
- Drupal 5
- Drupal 6
developer/hooks/node.php, строка 145
- Версии
- 5
hook_access($op, $node)
- 6
hook_access($op, $node, $account)
Определяет ограничения доступа.
Этот хук позволяет модулям ограничить доступ к нодам, типы которых они определяют.
Администратор сайта (пользователь с ID #1) всегда получает «добро» при любых проверках доступа, поэтому этот хук для него не вызывается. Если этот хук не определен для какого-либо типа нод, все проверки доступа будут выдавать запрет, поэтому только администратор сможет видеть ноды этого типа. Однако, пользователи с правом 'administer nodes'
всегда могут просматривать и редактировать все ноды через интерфейс администрирования контента.
Смотри также
Подробный пример использования этого хука можно найти в коде модуля node_example.module. Взаимосвязь с другими функциями контроля доступа описана на странице «Система доступа к нодам»
Параметры
$op
Операция, которая будет выполнена. Возможные значения:
'create'
'delete'
'update'
'view'
$node
Нода, над которой эта операция будет совершена, или, если она ещё не существует, то тип ноды, которую нужно создать.
$account
Объект пользователя, для которого операция должна быть выполнена.
Возвращаемое значение
TRUE
если операция должна быть разрешена;
FALSE
если операция должна быть запрещена;
NULL
для того, чтобы воспользоваться значениями по-умолчанию из таблицы node_access
и модулей контроля доступа.
Связанные темы
Код
<?php
function hook_access($op, $node, $account) {
if ($op == 'create') {
return user_access('create stories', $account);
}
if ($op == 'update' || $op == 'delete') {
if (user_access('edit own stories', $account) && ($account->uid == $node->uid)) {
return TRUE;
}
}
}
?>
Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии