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 !
Discussions par date d’activité
7 discussions
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
Répondre à ce message
Bonjour,
j’ai remarquer que l’on peut pas se connecter si le profil n’a pas de mot de passe en bdd.
On peut corrigé cela en mettant un mot de passe « bidon » ?
Cordialement.
Bonjour,
Merci pour le retour, ça devrait être corrigé dans la version du jour, la 1.3.5.
Re,
Merci, j’ai vu les commit, en fait on peut plus se loguer si pas de mot de passe déjà sur le profil ?
Avec le lien fourni par le plugin on devrait pouvoir maintenant (si l’auteur a un login). Mais sans ça je ne pense pas que le formulaire de login de SPIP permette de ne pas saisir le mot de passe. On pouvait avant ?
Je ne sais plus, J’avais en tete de faire ça https://core.spip.net/projects/spip/repository/revisions/24130/entry/branches/spip-3.1/ecrire/action/inscrire_auteur.php#L84
Cela met un code aléatoire dans le profil et on peut se loguer quand même .
Pour info j’ai pu enregistrer un auteur (page auteur) sans problème avec seulement le login, sans mot de passe (SPIP 3.2.3)
erratum : on peut enregistrer la page auteur avec login sans mot de passe, mais pas se logguer sous ce profil dans SPIP sans mot de page, le clic sur « valider » n’a pas d’effet dans la page de connexion.
Oui c’est ce que je dis, moi je veux pouvoir me loguer sur un compte qui n’a pas de mot de passe.
en l’état, une astuce consiste à créer un ’mot de passe’ en tapant la touche espace autant de fois que de caractères requis pour le mot de passe (paramétré suivant le site). Cela fonctionne, on peut ensuite se logguer virtuellement avec le plugin à ce compte (qui a donc pour mdp, x fois un espace).
problème résolu avec la mise à jour, merci à vous.
Répondre à ce message
Bonsoir,
pouvez vous me dire la différence avec https://contrib.spip.net/Change-Statut
j’arrive pas a comprendre ...
j’ai l’impression que ce dernier plugin ne marche que pour le privé.… mais effectivement cela pourrais être bien de fusionner.
Le fonctionnement est fondamentalement différent. « Change statut » propose de changer le statut de l’auteur avec lequel on s’est logué, alors que « Incarner » permet de se loguer avec un autre compte temporairement.
Comme ça ne fait pas la même chose, je vois mal comment les fusionner, mais c’est peut-être juste un manque d’imagination de ma part :-)
« Incarner » sert mieux mes besoins parce que le système d’autorisations de SPIP n’utilise le système de statut des auteurs que partiellement. Au fond des choses, les autorisations sont calculées auteur par auteur, et le statut n’est qu’un des paramètres pris en compte.
Il y a des bugs qui se produisent pour certains auteurs mais pas pour d’autres, il faut alors tester en se loguant avec le bon auteur, changer de statut ne suffit pas pour reproduire le problème.
Par exemple, seuls les auteurs d’un article peuvent le voir quand il est « en cours de rédaction », les autres rédacteurs, qui ont pourtant le même statut ne le voient pas.
Imaginons qu’un rédacteur à un problème avec un article « en cours de rédaction », et qu’il en parle au webmestre. Le plugin « Incarner » permet alors au webmestre de facilement se loguer à la place du rédac en question et de voir le problème par lui-même. Avec « Change statut » le webmestre peut facilement devenir rédacteur, mais il ne pourra pas pour autant voir la même chose que le rédac qui a un souci.
Bonjour bystrano,
pour faire suite à votre dernier message, c’est exactement le genre d’utilisation que j’aimerai mettre en place sur mon site sur lequel nous avons développer une platform ou les utilisateurs peuvent se loggé et fare une multitude de choses, mais ce plugin serait super en prod, pour pouvoir aider les utilisateurs qui ont des soucis, mais votre commentaire en fin de description me fait douter si l’utilisation de ce plugin en prod :
S’il n’est pas à priori un trou de sécurité, ce plugin est un outil de débuggage destiné à être utilisé sur des sites en développement, ne l’activez-pas sur des sites en production !
Pensez vous que ce plugin peut être utilisé dans mon cas ?
Merci,
Perso il m’arrive de l’utiliser en prod et je n’ai jamais eu de problème.
J’ai mis l’avertissement parce que jouer avec les comptes utilisateurs est à priori délicat en matière de sécurité, et qu’à ma connaissance, le code n’a pas été audité par un-e spécialiste. J’ai fait au mieux selon mes compétences, mais il serait bien d’avoir au moins un avis extérieur avant d’utiliser le plugin sur des sites sensibles...
Merci pour l’info je vais tester ce plugin et serait ravi de partager mon retour d’experience =)
Comme promis voilà mon retour d’expérience :)
Super plugin qui nous aide énormément tous les jours. Nous avons du simplement changer l’url de retour du bouton « Redevenir xxx », mais rien de bien méchant. Est il possible depuis la page public de savoir si la personne (qui se fait passer pour un autre utilisateur) est un admin et de pouvoir récupérer son id_auteur original ?
Nous pensions mettre des options dans la page qui serait accessible aux admins qui utilisent l’option incarner.
Merci par avance pour votre aide,
Content de savoir que le plugin vous sert bien !
Pour récupérer l’id_auteur original, c’est un peu compliqué, mais je pense que ça devrait être possible. Le faire en php est assez facile, il suffit de faire comme dans le code du plugin, au moment où on ajoute le lien « redevenir xx » : https://zone.spip.org/trac/spip-zone/browser/_plugins_/incarner/trunk/incarner_pipelines.php#L51.
Par contre dans un squelette c’est plus épineux, parce qu’il faut lire un cookie. Un truc du style devrait donner l’id_auteur d’origine :
Mais le souci c’est que ça ne sera évalué que la première fois, puis mis en cache. Les visiteurs suivants verront le même résultat, même s’ils n’en ont pas le droit !!
Il y a une astuce qui devrait pouvoir régler ça en forçant un nouveau cache pour chaque valeur de ce cookie : https://nota-bene.org/Cookies-et-SPIP-la-ruse-de-sioux
Il faudrait alors ajouter ce code dans config/mes_options.php :
Voilà, ça devrait te donner des pistes, à toi de voir si ça fonctionne :-) N’hésite pas à redemander si ça coince !
Répondre à ce message
Petite remarque, j’en ai besoin principalement dans le privé et il n’est pas fait mention que l’on est sur un compte incarné.
Ce serait bien d’avoir un bandeau le signalant non ?
Et permettant d’avoir les mêmes deux boutons que dans le public ?
Bonne idée, je vais ajouter les boutons côté privé dans la prochaine version !
J’ai vu que tu l’avais fait, c’est parfait
Répondre à ce message
Plugin fort utile.
Une fonctionnalité que l’on retrouve de plus en plus dans les logiciels et c’est bien chouette de l’avoir.
Pour info, j’ai également eu des problème d’erreur 500 pour la fonction random_bytes même avec la dernière version.
Mon hébergement ne remplissant pas les conditions avec de vieilles versions de PHP (pas de libsodium, libmcrypt et un Plesk avec un open_basedir interdisant la lecture de /dev/urandom).
Par contre, je peux changer l’open_basedir et ai donc ajouté /dev/urandom à la conf.
Juste pour info, si quelqu’un rencontre le même soucis
Bizarre, le plugin utilise pourtant un polyfill de la fonction random_bytes qui devrait définir cette fonction pour les versions de PHP < 7.
Tu as encore le message d’erreur exact ?
Pas à 100%, sans donner lecture à /dev/urandom, je tombais sur le dernier cas ici : https://zone.spip.org/trac/spip-zone/browser/_plugins_/incarner/trunk/lib/random_compat-2.0.10/lib/random.php#L200
Ce commentaire est juste à titre de documentation
Répondre à ce message
Bonjour,
Au moment d’incarner un autre auteur, il s’affiche sur l’écran le message suivant :
Fatal error : Call to undefined function openssl_random_pseudo_bytes() in /home/www/e710cfc1d3474721b297332525a65bdc/web/tekurie2017/plugins/auto/incarner/v1.1.1/incarner_fonctions.php on line 62
Je précise que je suis sous spip 3.1.6
Merci d’avance pour votre aide qui me permettra d’utiliser ce plugin bien utile.
Bonjour,
C’est probablement à cause d’une vieille version de PHP. On peut savoir quelle version de PHP est installée sur le serveur dans l’espace privé, en allant à l’adresse http://mon-site-spip/ecrire/?exec=info
Je parie que vous avez un PHP 5.2 tout au mieux, j’ai bon ?
J’ai quand même amélioré un peu le support des vieux PHP dans une nouvelle version du plugin, la 1.2.0. Avec un peu de chance ça devrait passer… Est-ce que la nouvelle version règle votre problème ?
Merci d’avoir répondu aussi rapidement.
En effet mon hébergeur est sous Php 5.2.17.
Où puis je télécharger cette version 1.2.0 de ce plugin afin de l’essayer ?
Oups. Viens de voir qu’il y avait une mise à jour dispo dans la partie « gestion des plugins ». Je teste donc la nouvelle version en arrivant chez moi.
La version mise à jour fonctionne sur mon site. Cela va me faire gagner du temps dans la gestion de mon site. Merci encore bystrano.
Je me permettrai de remarquer qu’il y a un fonctionnement étrange du bandeau « Logout définitif-Redevenir admin ». En effet, après avoir cliqué sur bouton ou lien de déconnexion classique dans l’espace privé ou public pour me déconnecter, ce bandeau du pluguin apparaît. Seul le clic alors sur « Logout définif » me déconnecte. Le clic sur « Redevenir admin » m’envoie dans l’espace privé (toujours connecté sur mon compte d’admin).
En bref hors incarnation, je pense que le bandeau du plugin reste actif et perturbe la déconnexion.
C’est bien le fonctionnement prévu. Après une première déconnexion, on « incarne » un utilisateur anonyme, et il faut faire un logout définitif pour se déconnecter pour de bon. Peut-être qu’il faudrait présenter ça différemment ?
Ce statut d’« anonyme incarné » est utile quand on débugue le fonctionnement du site pour les anonymes. En plus d’éviter d’avoir à se reloguer après chaque test, cela permet d’utiliser les outils de debug sur les pages qui ne sont pas accessibles aux utilisateurs connectés, comme la page de login.
Répondre à ce message
Bonjour,
Créé 1 auteur par type d’autorisations et se loguer avec directement, ça va aussi ?
Bonjour,
Le plugin ne crée pas d’auteurs par lui-même, mais libre à toi de fonctionner comme ça.
Répondre à ce message
Ajouter un commentaire
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
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.
Suivre les commentaires : |