2010-07-26 129 views
1

我需要爲不同的用戶角色設置不同的「創建內容」權限。只有當特定角色沒有獲得「管理節點」權限時,這似乎才起作用。但是,沒有此權限,角色無權控制節點是否已發佈(我需要)或查看內容管理表(主頁>管理>內容管理)。Drupal 6管理節點權限忽略內容類型權限

例如,我希望用戶角色能夠創建新消息並能夠發佈/取消發佈它們,但不能創建新頁面(但能夠編輯現有頁面)。

有沒有人知道解決這個問題的方法?或者應該設置哪些權限?

回答

5

管理節點權限提供了比必要的更多訪問權限,並且一些模塊將它作爲柺杖權限使用,因爲它存在。

您可能想要關閉此權限並實施Override Node Options模塊,該模塊將允許用戶發佈取消發佈的內容。這些可以與內容類型級別的創建/編輯/刪除權限一起使用。

+0

感謝您的回覆,但是您知道這是否允許這些用戶訪問內容管理頁面嗎?我被告知這是至關重要的。 – drmonkeyninja 2010-07-26 19:24:47

+2

哦,不。如果沒有管理節點,則無法進入編輯。但是,您可以使用視圖重新創建此頁面,並將其放入管理內容(也包含暴露的濾鏡)。這是我通常做的,所以客戶沒有太多訪問權限。 – Kevin 2010-07-26 20:10:49

+0

此外,您需要確保輸入過濾器設置正確。例如,完全HTML的節點,一旦失去管理節點,角色將需要訪問該節點。 – Kevin 2010-07-27 00:10:08

0

查看此處提供的修補程序http://drupal.org/node/214190看起來Drupal 7可能允許在發佈和全面管理之間進行權限分離,但現在您必須使用該修補程序。

0

我不想安裝另一個模塊,所以我把這個代碼放在我們的一個自定義模塊中的hook_init()。強制節點/添加頁面,如果用戶沒有「創建*內容」權限,則拒絕訪問。

$arg = arg(); 
    // Quick hack to enforce node creation permissions. 
    if ( $arg[0] == 'node' 
     && !empty($arg[1]) 
     && $arg[1] == 'add' 
     && !empty($arg[2]) 
     ) { 
    $arg[2] = str_replace('-', '_', $arg[2]); 
    if (!user_access('create ' . $arg[2] . ' content')) { 
     drupal_access_denied(); 
    } 
    }