"Доступ запрещёт" в собственном модуле

Главные вкладки

Аватар пользователя Godric Godric 3 февраля 2015 в 22:42

Помогите пожалуйста! Пишу свой модуль, который будет представлять из себя личный кабинет. Добавил пункты меню (некоторые их которых должны отображаться только менеджеру) и натолкнулся на такую проблему:
Написал проверку

if (user_access('manager'))  {                                         
                                                                $load_menus[3]['url'] = 'cabinet/offices';

Но после этого пункт перестал отображаться менеджеру и обычному пользователю. Есть и роль и пользователь с названием manager.
И я так понемаю, из этого вытекает следующая ошибка, когда пытаюсь открыть страницу cabinet/offices, то получаю "Доступ заприщен", хотя прописал вот так:

 $items['cabinet/offices'] = array(
                        'title' => 'Офисы',
                        'page callback' => 'prime_cabinet_offices',
                        'access arguments' => array('manager'),
                        //'access callback' => TRUE,
                        'type' => MENU_CALLBACK,                       
          );

Если включаю 'access callback' => TRUE, то страница стаёт доступна всем ролям.
Может нужно что то в правах доступа включить? Но это же мой собственный модуль и там о нем ни слова.

Комментарии

Аватар пользователя Chyvakoff Chyvakoff 4 февраля 2015 в 0:49

В access callback должно быть имя вашей функции, которую вы создадите. И в не аргументом будет попадать access arguments.

Аватар пользователя ttenz ttenz 4 февраля 2015 в 10:20

примерно

/**
* Implements hook_menu().
*/

function first_module_menu() {
$items['first_module/custom'] = array(
'title' => 'Custom page',
'page callback' => 'first_module_custom',
'access arguments' => array('access content'),
);
return $items;
}

или

function first_module_menu() {
$items['first_module/custom/%node'] = array(
'title' => 'Custom page',
'page callback' => 'first_module_custom',
'page arguments' => array(2),
'access arguments' => array('administer site configuration'),
);
return $items;
}