Используя существующий модуль, вы можете сделать это с помощью Content Access , который (при совместном использовании ACL ) позволяет устанавливать разрешения для доступа к узлу для каждого пользователя.
Это означает, что вам необходимо установить права доступа вручную для каждого узла.
Если вы вручную создаете узлы, а затем хотите быть уверены, что только пользователь, установленный в качестве владельца узла, может просматривать (и редактировать) его, то вы можете создать собственный модуль (что означает модуль, который используется для вашего сайта), и реализовать hook_node_access()
следующим образом (код был написан для облегчения чтения):
function mymodule_node_access($node, $op, $account) {
// We are interested to existing objects. When the node is being created, Drupal passed the node type instead of the node object.
if (is_object($node)) {
$bool = (
($node->type == 'the node type you need to check') &&
(($op == 'view') || ($op == 'update'))
);
if ($bool) {
if ($account->uid == $node->uid) {
return NODE_ACCESS_ALLOW;
}
else {
return NODE_ACCESS_DENY;
}
}
}
return NODE_ACCESS_IGNORE;
}
Используя эту реализацию ловушки, вам не нужно вручную редактировать права доступа, предоставленные для каждого узла того типа контента, который вы создаете. Смена владельца узла также будет проще, поскольку вам не нужно изменять права доступа для этого узла; код автоматически предоставит права на обновление и просмотр пользователю, указанному как владелец (или автор) узла.