2010-07-16 61 views
0

用戶可能位於角色X.檢查用戶顯示權限

存在一個視圖,其中顯示A允許用於角色X,而顯示B受限制。

如何以編程方式檢查屬於角色X的用戶是否可以訪問顯示器?

回答

0

有爲什麼要以編程方式做具體的原因是什麼?您可以在視圖UI中爲視圖顯示設置訪問規則:

編輯視圖,選擇顯示並在「基本設置」塊中查找「訪問」。單擊該值(默認=「無限制」),單擊「覆蓋」按鈕覆蓋該特定顯示的設置並選擇所需的設置。

+0

我通過自定義模塊嵌入視圖。我需要通過檢查他的角色和每個顯示器中設置的角色來檢查顯示給用戶的顯示器。 – bibstha 2010-07-18 06:20:55

0

可以在主題中內聯執行,但最好將其分解爲模塊+主題。 (假設Drupal的7)在你的主題(節點 - contenttype.tpl.php)調用自定義訪問方法:

if (module_invoke('hottopicresearch', 'display_moderated_research_access_callback', 'update', $node)) { 

實現一個模塊在此訪問回調:

function hottopicsresearch_display_moderated_research_access_callback($permission, $node) { 

,並檢查角色

if (in_array("editorial board admin", $user->roles) || $user->uid == 1) { 

和/或節點的訪問在其他的答案指出:

if (!node_access($permission, $research_parent_node)) { 

返回TRUE或FALSE。

本示例提供了具有「編輯管理員」角色的人員以及可以寫入節點的人員的訪問權限。沒有人能看到這個指數。當然,這並不能阻止他們直接訪問節點。