Incarner

Permet aux webmestres de se connecter en tant qu’un autre auteur très facilement. Pendant la phase de développement, c’est très pratique pour diagnostiquer des problèmes d’autorisations sans avoir à se reloguer tout le temps, ou, sur un site fortement personnalisé, pour aider un utilisateur en lui décrivant que faire “tel qu’il voit le site”.

Ce plugin permet de se loguer en tant qu’un autre autre auteur sans saisir de mot de passe. Cette opération n’est autorisée qu’aux webmestres.

Sur la page privée d’un auteur

On ajoute un lien « se connecter en tant que XX » sur chaque page auteur dans l’espace privé, ainsi qu’un lien « redevenir XX » côté public, qui permet de redevenir le webmestre qu’on était à la base.

Quand on se connecte en tant qu’un autre auteur, on garde l’autorisation d’utiliser les outils de debug var_mode=inclure et var_mode=debug, ainsi que l’autorisation de se connecter en tant que quelqu’un d’autre quand on le souhaite. On peut même se déconnecter totalement, sans perdre ces autorisations, ce qui est pratique pour reproduire des problèmes qui ne se posent que pour les visiteurs anonymes.
Ce « super-pouvoir » est révoqué automatiquement après 1h d’inactivité.

On peut aussi changer d’utilisateur en visitant l’url spip.php?action=incarner&login=toto. Et pour finir et revenir à son propre compte, on peut faire de même avec son propre login.

Sur la page publique d’un article ou d’un autre objet

À partir de la version 1.5.1, on peut aussi bénéficier de ce comportement sur la page publique d’un article ou d’un objet d’un autre type, afin de se connecter en tant que son auteur.

Pour obtenir ce fonctionnement et préciser sur quels types d’objets est-ce qu’on veut cette fonctionnalité, il faut définir dans votre fichier d’options la constante _INCARNER_OBJET_ID_OBJET_COURANT pour indiquer quel est le type d’objet et le nom de sa clé. Le lien « se connecter en tant que XX » apparaît alors sur les pages publiques des objets éditoriaux de ce type, et permet de se connecter en tant que le premier auteur de l’objet.

Exemple :

define ('_INCARNER_OBJET_ID_OBJET_COURANT', 'article|id_article');

Attention

S’il n’est pas un trou de sécurité, ce plugin est un outil de débug destiné à être utilisé sur des sites en développement. Ne l’activez-pas sur des sites en production !

Discussion

One discussion

  • Déjà merci pour ce beau plugin trèèèès utile ;-)

    Niveau sécurité peut on ajouter ces améliorations qui sont nécessaires surtout sans mode parano actif :

    -  Il faudrait ajouter l’attribut httpOnly sur le cookie spip_cle_incarner, sinon avec une XSS : impact++
    -  Il serait plus prudent de générer/fixer ce cookie lors du premier clique de la session sur un bouton “se connecter en tant que”

    Encore merci

    Reply to this message

Add a comment

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Who are you?
[Log in]

To show your avatar with your message, register it first on gravatar.com (free et painless) and don’t forget to indicate your Email addresse here.

Enter your comment here

This form accepts SPIP shortcuts {{bold}} {italic} -*list [text->url] <quote> <code> and HTML code <q> <del> <ins>. To create paragraphs, just leave empty lines.

Add a document

Follow the comments: RSS 2.0 | Atom