은 첫째로 당신은 사람을 중지 할 수 없습니다 사람 데이터베이스 또는 루트 사용자가 데이터를 볼 수 없도록 액세스 할 수 있습니다 (적어도 암호화가없는 경우는 제외).
일반적인 사이트 운영 측면에서 이렇게하기가 어렵지 않습니다. 당신이 호출해야하는 두 갈고리는 hook_node_grants()과 hook_node_access_records()입니다. 꽤 좋은 예가 있습니다. 이것은 질문에서 당신이 원하는 것을 거의 수행합니다 : here.
간단히 말하면 hook_node_access_records()는 조치를 수행 할 수있는 relms 및 ids를 자세히 설명하는 구조를 반환하고 hook_node_grants()는 사용자의 relms 및 ids를 반환합니다. 이 둘 사이에 일치가 있으면 액세스 (읽기 또는 쓰기)가 부여됩니다.
이렇게하면 많은 유연성을 얻을 수 있습니다. 한 가지 예는 사람들이 동일한 별표를 가진 다른 사람들이 만든 노드 만 읽을 수 있다는 것입니다. hook_node_grants에서 당신은 같은 것을 할 만든 사용자의 별자리를 확인해야 할 것 starsign을 얻고 $grants['starsign'] = 2
노드가 저장됩니다 hook_node_access_records를 반환하는 사용자 개체를 검사 할 것 :
$grants = array();
$grants[] = array(
'realm' => 'starsign',
'gid' => $account->starsign,
'grant_view' => 1,
'grant_update' => 0,
'grant_delete' => 0,
'priority' => 0,
);
return $grants
을 그 방법은 relm과 그룹 id가 일치하면 사용자에게 읽기 권한이 주어집니다.