Protected Node Rules

Créé le 22/12/2013

Dernière mise à jour le 26/07/2015

Étiquettes

Les fonctionnalités suivantes ne sont disponibles uniquement lors de l'installation de l'extension Rules de Protected Node. Cette extension requiert le module Rules.

Conditions

Lors de la manipulation de noeud, il est possible de vérifier si le noeud (1) est actuellement protégé, (2) a un mot de passe ou (3) verrouillé.

Noeuds protégés

Un noeud est dit protégé lorsque le noeud a été protégé par un mot de passe en utilisant le module Protected Node.

Seul le fait que le noeud requiert un mot de passe pour être vu est contrôlé avec cette condition. Peu importe si l'utilisateur peut voir le noeud ou non.

Noeuds avec mots de passe

Un noeud a un mot de passe lorsqu'un mot de passe a préalablement été enregistré spécifiquement à ce noeud.

Noeuds verrouillés

Un noeud est dit verrouillé si l'utilisateur courant doit saisir un mot de passe pour voir le noeud.

Note : actuellement, vous ne pouvez pas tester si le noeud est verrouillé pour quelqu'un d'autre que l'utilisateur courant (la variable utilisée est global $user).

Actions

Protéger le noeud

Marque un noeud comme étant protégé. Le mot de passe n'est pas modifié. Pour que cela fonctionne comme vous avez prévu, vous devez utiliser un mot de passe global au site ou global par type de contenu.

Si aucun mot de passe global n'est défini, alors le noeud devient complètement verrouillé excepté pour ceux ayant le droit d'accéder à tous les noeuds protégés. Voir la page dédiée aux permissions pour plus de détails.

Protéger le noeud par mot de passe

Marque le noeud comme étant protégé et assigne le mot de passe spécifié.

Si aucun mot de passe n'est spécifié (champ de texte laissé vide), un mot de passe aléatoire sera généré.

Cette action protégera autant de noeuds que vous souhaitez, mais ils auront tous le même mot de passe si un mot de passe est spécifié dans cette action.

Déprotéger le noeud

Marque le noeud comme étant déprotégé. Désormais n'importe qui peut voir le noeud.

Verrouiller le noeud pour l'utilisateur courant.

Cette action vide la session de l'utilisateur courant ce qui marque le noeud comme à nouveau verrouillé. Ce qui signifie que l'utilisateur va devoir resaisir le mot de passe pour accéder au noeud.

Note : cette fonctionnalité ne fonctionne qu'avec la session de l'utilisateur courant. Actuellement, vous ne pouvez pas supprimer la session d'un utilisateur A lorsque l'utilisateur B visite votre site.

Déverrouiller le noeud pour l'utilisateur courant

Cette action ajoute une session à l'utilisateur courant lui permettant d'accéder au noeud sans avoir à saisir son mot de passe.

Ce peut être utile pour déverrouiller temporairement un noeud seulement après que l'utilisateur ait visité une page spécifique du site. S'il ne visite pas d'abord la page, il devra saisir le mot de passe du noeud et s'il ne l'a pas, il obtiendra une erreur d'accès refusé.

Exemple d'utilisation comme une fonctionnalité de déconnexion

On m'a (l'auteur de la documentation d'origine) demandé de créer un moyen à l'utilisateur de se déconnecté d'un noeud sur lequel il était allé et de devoir resaisir le mot de passe. Le problème est que si vous êtes sur un ordinateur public, le cookie de session est sauvegardé sur cet ordinateur et à moins que l'utilisateur ne sache comment supprimer les cookies, n'importe qui ayant accès à cet ordinateur peut accéder au noeud protégé.

Pour palier à ce problème, nous pouvons ajouter un lien de déconnexion sur les pages protégées qui envoie l'utilisateur sur une page de remerciements, lorsque l'utilisateur arrive sur cette page de remerciements, le module Rules peut le détecter.

Voici un exemple de lien. Notez le paramètre nocache=1, c'est pour éviter le cache du système ou de boost ainsi la page de déconnexion est active (sinon sa version .html serait envoyée et les règles ne seraient jamais exécutées !).

<p><a href="/logout-locked-page?nocache=1" title="Déconnectez vous de cette page.">Déconnexion</a> de cette page.</p>

Vous pouvez également ajouter le chemin de cette page de déconnexion parmi les pages non mises en cache par le module Boost.

Ce qui suit suppose que vous avez activé l'extension Rules de Protected Node.

Créer une nouvelle règle.

La règle utilise l'événement déclencheur Le contenu va être vu. Ne pas oublier de saisir une étiquette comme "nom de la page de déconnexion".

Vous voulez sûrement ajouter une condition sinon n'importe quel noeud consulté réagira à cette événement et verrouillera l'utilisateur (ce qui signifie que l'utilisateur ne pourra jamais voir la page). Une condition simple est de comparer l'identifiant de noeud (nid). Ce qui peut être fait avec la condition de comparaison de nombres. Vous pouvez bien entendu envisager d'autres conditions basées sur le type de contenu, des jetons, etc.

Un moyen simple de voir l'identifiant du noeud dans le cas où vous utilisez les URLs simplifiées avec les alias d'URL automatiques est d'éditer la page. Alors l'URL inclue le nombre : node/nid/edit. Assurez vous de saisir ce nombre dans le nombre 2 du formulaire de condition.

À ce niveau, nous savons que nous sommes sur la page de déconnexion. Nous voulons charger le noeud actuellement déverrouillé pour le reverrouiller. Ce qui peut être fait avec l'action Charger le contenu par son identifiant ou des actions similaires. Changer l'identifiant de contenu par l'identifiant du noeud à verrouiller.

Maintenant, dans le groupe des actions, ajouter l'action Verrouiller le noeud de l'utilisateur courant et lui donner un poids de 1 ainsi le chargement s'effectue toujours en premier.

Note 1 : le verrouillage doit avoir lieu sur le noeud déprotégé, donc votre règle doit d'abord charger le noeud en premier (puisque la page de remerciements sera un autre noeud) puis appliquer l'action sur ce noeud.

Note 2 : Vos actions peuvent inclure autant de chargement et verrouillage de noeuds que nécessaire. Ainsi la même page de remerciements peut être utilisée pour verrouiller différents noeuds.

Ajouter un commentaire