การใช้โมดูลที่มีอยู่คุณสามารถทำได้ด้วย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;
}
เมื่อใช้การติดตั้ง hook นี้คุณไม่จำเป็นต้องแก้ไขสิทธิ์การเข้าถึงที่กำหนดให้สำหรับแต่ละโหนดของประเภทเนื้อหาที่คุณสร้าง การเปลี่ยนเจ้าของโหนดก็จะง่ายขึ้นเช่นกันเนื่องจากคุณไม่จำเป็นต้องเปลี่ยนสิทธิ์การเข้าถึงของโหนดนั้น รหัสจะให้สิทธิ์การอัปเดตและดูสิทธิ์โดยอัตโนมัติแก่ผู้ใช้ที่ตั้งเป็นเจ้าของ (หรือผู้แต่ง) ของโหนด