我需要爲不同的用戶角色設置不同的「創建內容」權限。只有當特定角色沒有獲得「管理節點」權限時,這似乎才起作用。但是,沒有此權限,角色無權控制節點是否已發佈(我需要)或查看內容管理表(主頁>管理>內容管理)。Drupal 6管理節點權限忽略內容類型權限
例如,我希望用戶角色能夠創建新消息並能夠發佈/取消發佈它們,但不能創建新頁面(但能夠編輯現有頁面)。
有沒有人知道解決這個問題的方法?或者應該設置哪些權限?
我需要爲不同的用戶角色設置不同的「創建內容」權限。只有當特定角色沒有獲得「管理節點」權限時,這似乎才起作用。但是,沒有此權限,角色無權控制節點是否已發佈(我需要)或查看內容管理表(主頁>管理>內容管理)。Drupal 6管理節點權限忽略內容類型權限
例如,我希望用戶角色能夠創建新消息並能夠發佈/取消發佈它們,但不能創建新頁面(但能夠編輯現有頁面)。
有沒有人知道解決這個問題的方法?或者應該設置哪些權限?
管理節點權限提供了比必要的更多訪問權限,並且一些模塊將它作爲柺杖權限使用,因爲它存在。
您可能想要關閉此權限並實施Override Node Options模塊,該模塊將允許用戶發佈取消發佈的內容。這些可以與內容類型級別的創建/編輯/刪除權限一起使用。
查看此處提供的修補程序http://drupal.org/node/214190看起來Drupal 7可能允許在發佈和全面管理之間進行權限分離,但現在您必須使用該修補程序。
我不想安裝另一個模塊,所以我把這個代碼放在我們的一個自定義模塊中的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();
}
}
感謝您的回覆,但是您知道這是否允許這些用戶訪問內容管理頁面嗎?我被告知這是至關重要的。 – drmonkeyninja 2010-07-26 19:24:47
哦,不。如果沒有管理節點,則無法進入編輯。但是,您可以使用視圖重新創建此頁面,並將其放入管理內容(也包含暴露的濾鏡)。這是我通常做的,所以客戶沒有太多訪問權限。 – Kevin 2010-07-26 20:10:49
此外,您需要確保輸入過濾器設置正確。例如,完全HTML的節點,一旦失去管理節點,角色將需要訪問該節點。 – Kevin 2010-07-27 00:10:08