2011-11-22 41 views
0

我有一個模塊可以創建多個admin/settings/modname頁面。Drupal 6將一個模塊頁面的權限授予特定角色

我創建了一個新角色。

我想這個角色只能夠訪問一個特定頁面,說admin/setting/modname/custom1

我將如何去到該頁面這個角色只有權分配訪問?

這會在我的hook_menuaccess arguments下完成嗎?

現在,角色在所有頁面上都獲得拒絕訪問權限。

回答

2

您可以實現hook_perm爲你的模塊提供了一組自定義權限:

function mymodule_perm() { 
    return array('my module permission'); 
} 

然後在hook_menu您的菜單項使用access arguments你的建議:

function mymodule_menu() { 
    $items['admin/setting/modname/custom1'] = array(
    'title' => 'Settings', 
    'page callback' => 'mymodule_callback', 
    'access arguments' => array('my module permission') 
); 

    return $items; 
} 

一旦你已經安裝了您的模塊/已清除的Drupal緩存進入權限管理頁面,並將您的新權限授予所需的角色,具有該角色的用戶將(理論上)能夠訪問它。

我說「理論上」,因爲如果您的路徑位於admin/下,那麼角色也需要access administration pages權限才能查看頁面,這會引入潛在的安全問題。您最好的選擇是將路徑更改爲admin/以外的其他位置,以避免必須處理此問題。