2013-04-02 20 views
0

從我的理解,我的問題是我(而不是我的客戶端)運行的是Drupal的舊版本,特別是Core 6.26如果您對任何其他規範感到好奇,我會很樂意泄露。Drupal模塊的權限列表被卡住

這樣做後,我做了一個新的模塊與以下菜單鉤子。

function checkin_menu(){ 
    $items = array(); 
    $items['checkin'] = array(
     'title' => 'Checkin' 
     ,'type' => MENU_CALLBACK 
     ,'access arguments' => array('checkin') 
     ,'page callback' => 'checkin' 
    ); 
} 

權限列出了我所期望的。有一個名爲「簽入」的部分與.info文件中指定的模塊名稱相同,另外一個部分授予「簽入」的權限

稍後,我擴展了模塊以具有兩個不同的路徑。第二個應該是隻適用於管理員。

function checkin_menu(){ 
    $items = array(); 
    $items['checkin'] = array(
     'title' => 'Checkin' 
     ,'type' => MENU_CALLBACK 
     ,'access arguments' => array('create a checkin') 
     ,'page callback' => 'checkin' 
    ); 
    $items['checkin_admin'] = array(
     'title' => 'Checkin Admin' 
     ,'type' => MENU_CALLBACK 
     ,'access arguments' => array('view all checkins') 
     ,'page callback' => 'device_checkin_page' 
    ); 
    return $items; 
} 

讓我意外的是,「創建簽入」或「查看所有簽到」都顯示出來。我仍然在權限頁面上顯示原始「checkins」。我幾天前一直在尋找答案。幫助一個人出去?

回答

3

權限由不同的鉤子定義,即hook_perm

所以,你應該做這樣的事情:

/** 
* Implementation of the hook_perm() 
*/ 
function checkin_perm() { 
    return array (
    'create a checkin', 
    'view all checkins', 
); 
} 
+0

哦!它正盯着我的臉!謝謝,馬克斯! :D –

+0

歡迎來到Drupal世界:) – Max