2014-02-24 78 views
1

我已經爲不同的節點類型設置了具有角色訪問權限的站點。 對於只有一個節點,我必須刪除只有一個角色的訪問權限,其他人將保持不變。 由於該站點已經安裝了許多模塊,我寧願只使用鉤子函數而不是模塊作爲nodeaccess或內容訪問。 有人可以請爲hook腳本提供建議嗎?drupal 7限制單個節點的角色訪問

回答

1

這應該工作,根據需要調整操作,用戶角色和節點類型:

function mymodule_node_access($node, $op, $account) { 
    if (in_array('the role', $account->roles) && $op == 'view' && $node->type == 'article' && $node->nid == 42) { 
     return NODE_ACCESS_DENY; 
} 
} 

你可以離開了$運算和$節點 - >類型的條件語句,如果這僅僅是一個單一的NID 。

Documentation for hook_node_access

+0

親愛Doodero 非常感謝你的回答。 我想用這個認證的用戶,其他用戶角色允許有acces。我嘗試認證作爲角色,但這似乎不起作用。被認證不是一個真正的角色? –