drupal 6: перенаправить URL администратора для пользовательской роли - PullRequest
2 голосов
/ 19 сентября 2010

Мне нужно перенаправить URL-адрес для роли пользователя.

URL-адрес: http://www.example.com/admin

URL TO: http://www.example.com/admin/content/filter

Роль пользователя: example-admin

Таким образом, когда пользователь (роль example-admin) входит в административную панель с помощью URL-адреса example.com/admin, он не видит страницу «Отказано в доступе», но перенаправляется на контент / фильтр в качестве URL-адреса входа по умолчанию.

Ценю, помогает! Большое спасибо!

Ответы [ 2 ]

3 голосов
/ 19 сентября 2010

Вам следует рассмотреть возможность использования модуля «Правила» (http://drupal.org/project/rules). Модуль правил позволяет создавать редиректы при входе в систему по произвольному URL. Вы также можете проверить такие условия, как роль пользователя, перед выполнением перенаправления.

2 голосов
/ 20 сентября 2010

Если вы хотите сделать это из кода в пользовательском модуле, вы можете реализовать hook_menu_alter() и настроить функцию обратного вызова доступа для использования пользовательского переопределения:

function yourModule_menu_alter(&$items) {
  // Override the access callback for the 'admin' page
  $items['admin']['access callback'] = 'yourModule_admin_access_override';
}

Inпри этом переопределении вы выполняете стандартную проверку доступа и возвращаете результат, но добавляете проверку для определенной роли и вместо этого перенаправляете, если необходимо:

function yourModule_admin_access_override() {
  global $user;
  // Does the user have access anyway?
  $has_access = user_access('access administration pages');
  // Special case: If the user has no access, but is member of a specific role,
  // redirect him instead of denying access:
  if (!$has_access && in_array('example-admin', $user->roles)) {
    drupal_goto('admin/content/filter');  // NOTE: Implicit exit() here.
  }
  return $has_access;
}

(ПРИМЕЧАНИЕ. Не проверенный код, остерегайтесь опечаток)*

Вам нужно будет запустить перестройку реестра меню для изменения меню, которое будет выбрано.

...