J'utilise le module de règles avec drupal 7 afin de rediriger les utilisateurs anonymes vers la page de connexion, j'ai donc créé une règle avec réagir à l'événement "Drupal s'initialise", condition "L'utilisateur a un rôle" avec un utilisateur anonyme et "Pas d'URL de connexion au site", puis j'ai ajouté une action "Rediriger la page" à l'URL de connexion au site. Lorsque j'ai essayé de tester la règle; drupal continuait de rediriger vers la page de connexion sur et jusqu'à ce que le serveur Apache cesse de fonctionner.
La façon dont je l'ai résolu comme suit:
Conditions:
Parameter: User: [site:current-user], Roles: anonymous user
Parameter: Text: [site:current-page:url], Matching text: user/login
Actions: Redirection de page - Parameter: URL: user/login
Exporter la règle comme suit:
{ "rules_login" : {
"LABEL" : "login",
"PLUGIN" : "reaction rule",
"OWNER" : "rules",
"TAGS" : [ "login" ],
"REQUIRES" : [ "rules" ],
"ON" : { "init" : [] },
"IF" : [
{ "user_has_role" : {
"account" : [ "site:current-user" ],
"roles" : { "value" : { "1" : "1" } }
}
},
{ "NOT text_matches" : { "text" : [ "site:current-page:url" ], "match" : "user\/login" } }
],
"DO" : [ { "redirect" : { "url" : "user\/login" } } ]
}
}
Aller à /admin/people/permissions
décochez Afficher le contenu publié pour les utilisateurs anonymes
allez maintenant à /admin/config/system/site-information
ajouter 'utilisateur' dans le champ de la page (accès refusé)
Je suis sûr que vous pouvez retirer cela avec des règles, mais ce serait aussi facile à faire dans le fichier template.php de votre thème.
Quelque chose comme ça devrait fonctionner:
global $user;
if ($user->uid == 0 && arg(0) != 'user' && arg(1) != 'login'){
drupal_goto('user/login');
}
Ou, si l'accès aux pages utilisateur/inscription & utilisateur/mot de passe est toujours souhaité:
global $user;
if ($user->uid == 0 && arg(0) != 'user'){
drupal_goto('user/login');
}
Le problème ici est l'événement en question. Au lieu de Drupal is initializing
, essayez Content is viewed
.
Je sais que c'est un article d'il y a deux ans. Cependant, la solution pour rediriger un utilisateur anonyme vers la page de connexion de l'utilisateur avec des règles est la suivante:
J'espère que cela aidera quelqu'un.