Question

Je dois rediriger une URL pour un rôle d'utilisateur.

URL à partir de: http://www.example.com/admin

URL pour: http://www.example.com / admin / content / filtre

Rôle utilisateur: Exemple-admin

Alors, quand un login utilisateur (rôle exemple-admin) sur le panneau d'administration avec le example.com/admin url, il ne verra pas la page Accès refusé, mais redirigé vers le contenu / filtre URL de connexion par défaut.

aide Appréciez! Merci beaucoup!

Était-ce utile?

La solution

Si vous voulez le faire à partir du code dans un module personnalisé, vous pouvez mettre en œuvre hook_menu_alter() et régler la fonction de rappel d'accès à utiliser une commande prioritaire personnalisée:

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

Dans ce override, vous effectuez le contrôle d'accès standard et renvoie le résultat, mais bien la vérification pour le rôle spécifique et redirect à la place, si nécessaire:

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;
}

(NOTE: code non testé, méfiez-vous des fautes de frappe)

Vous devrez déclencher une reconstruction du registre de menu pour la modification de menu pour être repris.

Autres conseils

Vous devriez envisager d'utiliser le module Règles ( http://drupal.org/project/rules ). module de règles vous permet d'émettre des redirections vers connexion à une URL arbitraire. Vous pouvez également vérifier les conditions comme le rôle de l'utilisateur avant d'émettre la redirection.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top