2012-01-26 2 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")); 
} 

Когда я иду в «резюме/список заданий» под пользователем без разрешения, я получаю «Access Denied», как и ожидалось, однако связь по-прежнему отображается. enter image description here

+0

я нашел модуль, который делает именно то, что мне нужно http://drupal.org/project/menu_per_role После включения модуля, просто изменить ссылку вы хотите, и в нижней части под «ограничивает видимость элемента» (Я не мог ответить на свой вопрос еще на 6 часов, и я не хотел, чтобы кто-то тратил свое время, поэтому я разместил его как комментарий) –

ответ

0

hook_perm() был переименован в hook_permission() в Drupal 7, и есть немного несоответствие между view mylink, который Вы определяете и view 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

Смежные вопросы