2012-01-26 68 views
1

在/ drupal/admin/structure/menu/manage/main-menu中,我有一些鏈接,我只想顯示給具有特定權限的用戶。如何使某些菜單項對某些角色可見?

我該怎麼辦?

在我的模塊,我有

... 

$items['resume/joblist'] = array(
    'page callback' => 'ac_resume_job_list', 
    'access arguments' => array('view joblist'), 
    'title' => 'Job List', 
    'description' => 'Job List', 
); 

... 

function ac_resume_permission() 
{ 
    return array("view joblist" => array("title" => "View Job List")); 
} 

當我去「簡歷/作業表」用戶在未經允許,我得到的「拒絕訪問」的預期,但該鏈接仍然顯示。 enter image description here

+0

我發現了一個模塊,不正是我需要的 http://drupal.org/project/menu_per_role 使模塊後,只需編輯您想要的鏈接,並在在「限制項目可見」 底部 (我不能回答我自己的問題6個小時,我不想讓任何人浪費他們的時間,所以我發佈它作爲評論) –

回答

0

hook_perm()更名爲hook_permission()在Drupal 7,並有一個位,你定義聲明作爲權限view mylinkview joblist之間的不匹配。

你可以改變你的代碼看起來更象這樣:

function mymodule_menu() { 
    $items['mylink'] = array(
    'page callback' => 'mymodule_mylink', 
    'access arguments' => array('view mylink'), 
    'title' => 'My Link', 
    'description' => 'My Link', 
); 

    return $items; 
} 

function mymodule_permission() { 
    return array(
    'view mylink' => array(
     'Title' => 'View My Link' 
    ) 
); 
} 

你清楚Drupal的緩存導航到admin/people/permissions後並分配新的權限角色要能夠訪問你定義頁面hook_menu()

一旦你完成了用戶與該角色將能夠訪問該頁面:)

+0

當用戶未被授權時,我仍然可以看到菜單項。 –

+0

我添加了一個我正在尋找的圖像。 –

+0

你知道建立該菜單的代碼是什麼嗎? – Clive

相關問題