Page de login et boite statut pour SPIP

© Christian PAULUS. Document créé le 22 décembre 2007 , mis à jour le 8 juillet 2008.

Les hommes vieillissent toujours mal quand ils restent jeunes. Romain Gary (Au-delà de cette limite...)

Accueil du site > Outils > Page de login et boite statut pour SPIP

Plugin / SPIP 1.9.2c

Login-Logout (LiLo) est un plugin pour SPIP qui s’appuie sur la distribution 192c de SPIP et jQuery 1.1.1 qui l’accompagne.

LiLo est né d’un simple besoin d’avoir un lien « déconnexion » en espace public ainsi que de sécuriser un peu mieux la connexion à l’espace privé.

Par défaut, lors d’une tentative à l’espace privé, SPIP présente une page d’invite pour un login (un identifiant). Malheureusement, lorsque l’identifiant proposé n’existe pas dans sa base, SPIP a la mauvaise idée de l’indiquer par un message d’erreur. C’est une première identification. L’administrateur Unix apprécie peu ce genre de messages qui est déjà une première indication donnée à l’opportuniste et malveillant que nous rencontrons parfois.

La page login

Outre le fait de simplifier l’authentification en ne proposant qu’une page pour le login et le mot de passe, LiLo permet de contourner cette petite faiblesse. Lorsque vous tentez de vous connecter avec un identifiant inconnu de la base, la page ne renvoie rien et propose à nouveau l’authentification.

PNG - 30.8 ko
Page login (accès privé)

Comme vous pouvez le lire plus bas, cette page login est configurable. Et pour ceux qui – probablement sur Intranet – souhaitent avoir les messages d’erreur et le logo auteur affichés, quelques clics suffisent.

La boite login

Le formulaire de login en espace public est positionné par la balise #LOGIN_PUBLIC, en général dans inc-rubrique.html ou autre squelette global. Là aussi, l’emploi de cette balise appelera le formulaire login de LiLo.

La boite statut

La boite statut apparaît en espace public, dans un des coins de l’écran.

PNG - 60.4 ko
Boite statut, côté espace public
Bloc bleu en haut, à droite

C’est un simple formulaire que les connaisseurs de SPIP prendront plaisir à personnaliser.

Avertissement

LiLo est un programme libre, vous pouvez le redistribuer et/ou le modifier selon les termes de la Licence Publique Generale GNU publiée par la Free Software Foundation (version 2 ou bien toute autre version ultérieure choisie par vous). LiLo est distribué car potentiellement utile, mais SANS AUCUNE GARANTIE, ni explicite ni implicite, y compris les garanties de commercialisation ou d’adaptation dans un but spécifique. Reportez-vous à la Licence Publique Générale GNU pour plus de détails.

Lilo est - pour le moment - en période de test. Merci d’utiliser le forum en bas de page pour signaler les éventuelles erreurs.

Configuration par défaut

A l’installation, si vous ne modifiez pas la configuration de LiLo :

- le logo auteur n’apparaît pas dans la page login ;
- les erreurs de connexions (identifiant invalide, mot de passe erroné) ne sont pas signalés ;
- le cookie de session est activé ;
- le logo auteur et les boutons d’administrateur SPIP apparaissent dans le boite statut ;
- la couleur du fond de la boite statut est le bleu, opaque. Sa position est en haut à droite de l’écran.

Vous pouvez modifier tous ces paramètres par la page de configuration en espace privé, à condition d’avoir les droits d’administrateur pour toutes les rubriques.

A noter que le LiLo désactive les anciens boutons d’administration.

Vous pouvez tester le résultat sur http://demoplug.free.fr/. Créez-vous un compte rédacteur, découvrez la boite statut et la page de login pour accéder à l’espace privé http://demoplug.free.fr/ecrire/.

Installation et configuration

Téléchargez l’archive :

Zip - 87.6 ko
Login-Logout v.0.33

ou récupérez la dernière version par svn :

svn export svn://zone.spip.org/spip-zone/_plugins_/_test_/login_logout

L’installation nécessite de placer le dossier du plugin dans votre dossier plugins. Pour plus d’information sur l’installation d’un plugin, consulter cette page sur Spip.net.

Après avoir installé et activé le plugin, Lilo prend en charge votre page de login automatiquement (sauf si vous avez un fichier login.html dans vos squelettes. Voir cette page sur l’optimisation de find_in_path() pour précisions à ce propos) . La nouvelle page de login est immédiatement installée.

En ce qui concerne la boîte de statut, il vous faut ajouter la balise #STATUT_PUBLIC dans le fichier inc-pied.html ou tout autre fichier commun à l’ensemble de vos squelettes. Insérer la balise #STATUT_PUBLIC avant la balise #SPIP_CRON est un bon choix.

Si vous avez construit vos propres squelettes, placez cette balise en fin de squelette, de sorte qu’elle soit appelée en fin d’assemblage de la page HTML.

A noter qu’à partir de la version 0.04 de Lilo, l’insertion de le balise #STATUT_PUBLIC est automatique si vous utilisez la distribution SPIP pour le squelette inc-pied.html.

Paramétrer LiLo

LiLo est paramétrable via le menu Configuration de l’espace privé.

PNG - 86.7 ko
Page de configuration

Définissez vos préférences pour la page de login – celle qui permet d’accéder à l’espace privé – tels que l’affichage des erreurs, le logo auteur, etc. Définissez ici également la position de la boite des statuts (état de connexion, boutons d’administrations de SPIP, lien de déconnexion) et son apparence.

Mise à jour du plugin

Si vous effectuez une mise à jour du plugin, parfois, vider le cache via l’espace privé ne suffit pas. Lilo compacte les feuilles de style et le code javascript nécessaire. Vider le cache ne permet pas de mettre à jour ces fichiers compactés. Les caches des scripts et css compactés se trouvent dans le répertoire /local/cache-js et le répertoire /local/cache-css. Vérifiez la présence des fichiers compactés dans ces répertoires. Si besoin supprimez-les, SPIP les reconstruit automatiquement au prochain appel d’une page.

Désinstaller LiLo

Pour désinstaller LiLo, il suffit de décocher la case dans la page d’administration des plugins et de retirer la balise #STATUT_PUBLIC de votre squelette.

Vous pouvez désinstaller également les préférences de LiLo en cliquant sur la petite boite puis en confirmant sur Effacer tout. Les préférences par défaut seront utilisées à la prochaine installation.

TODO

Il reste à améliorer Lilo. Pour commencer :
- vérifier l’usage du cookie sur un poste sans cookie ;
- sans JavaScript, l’authentification dans la petite boite de login ne fonctionne pas (Ajax est utilisé ici pour demander les clés de cryptage). Voir à mettre en place une version ‘noscript’, même si l’on perd l’avantage d’une authentification en une passe. En tout cas, signaler le non-fonctionnement à l’utilisateur.

Documents joints

Répondre à cet article

33 Messages de forum

  • Page de login et boite statut pour SPIP

    27 décembre 2007 18:11, par bruno010

    BOnjour,

    Je viens d’installer ton plugin sur SPIP 1.9.2c. Il est très intéressant. Mais, j’ai eu deux types de problèmes,lors des tentatives de connexion :

    1) sur l’espace public, j’ai l’erreur http 302, avec un message de redirection. Quand je clique sur le lien, je reviens sur ma page, sans pour autant arriver à me reconnecter.

    2) sur l’espace privé, j’ai la même erreur, avec en plus un message m’indiquant que je dois installer les coockies sur mon navigateur, alors que c’est fait. Je n’arrive pas à rentrer dans l’espace privé. J’ai été obligé de désinstaller ton plugin.

    Dans le cas où j’arrive avec ton aide à résoudre ces deux problèmes, est-ce qu’il est possible de :
    - désactiver le choix "s’inscrire" ?
    - rajouter le choix "mot de passe oublié" ? .

    Merci.

    • Page de login et boite statut pour SPIP

      27 décembre 2007 19:19, par Christian PAULUS

      Bonjour,

      Svp, préciser le numéro de version. La version SVN est toujours plus à jour que celle présente en téléchargement ici. Ceci dit, je viens de placer la 0.06 sur cette page.

      Dans le limite du possible, préciser également les plugins installés (une copie de la ligne Http header du style : "Composed-By : SPIP 1.9.2c @ www.spip.net + lilo(0.06) + truc(0.12)" est impeccable).

      Le cookie est géré par le squelette, pas par le plugin. J’ai vu ce genre de problème sur IE 6 avec réglage sur niveau de sécurité. Pas réussi à répéter le soucis en local.

      Merci pour le compte-rendu.

    • Page de login et boite statut pour SPIP

      29 décembre 2007 11:37, par Christian PAULUS

      Pour ne pas voir l’invite d’inscription, il suffit de cocher “Refuser l’inscription des visiteurs” dans la page de configuration “Intéractivité”.

      Et de vider le cache.

      Pour ce qui est du “mot de passe oublié”, le lien est sur la page login. Mais tu parlais peut-être de la boite login ?

    • Page de login et boite statut pour SPIP

      11 janvier 15:26, par JF

      J’ai exactement le même souci : après avoir installé le plugin, mon login/mot de passe ne semblent plus reconnus et j’ai un message d’erreur "mot de passe incorrect". Je n’arrive plus à accéder ni à l’espace public, ni à l’espace privé (avec mon compte admin)

      JF

      Versions : LILO version_base : 0.01 filemtime : 1199636760 Version : 0.16

      SPIP 1.9.2.c build 10958

      AUTRES PLUGS acces_restreint 0.11 (Blip 2.2 présent dansle répertoire plugin mais inactif) saveauto 0.2

      • Page de login et boite statut pour SPIP

        12 janvier 04:47, par Christian PAULUS

        Symptome typique de l’appel ajax qui échoue. Pour le vérifier, voir le log (spiplog) qui donne

        fonction lilo_auteur_infos (action_lilo_auteur_infos ou action_lilo_auteur_infos_dist) indisponible (fichier action/lilo_auteur_infos absent)

        lors de la phase du login. Plus précisement, dès qu’on entre un login, lilo appelle en ajax action/lilo_auteur_infos.php pour récupérer les clés de cryptage.

        Plugin bien installé (action/* manquant) ?

        • Page de login et boite statut pour SPIP

          13 janvier 13:09, par JF

          « Plugin bien installé (action/* manquant) ? »

          Possible, je vais vérifier. Mais j’ai instllé/desinstallé plusieurs fois le plugin, si ce n’est pas ça le problème, alors quoi ?

          • Page de login et boite statut pour SPIP

            13 janvier 16:59, par Christian PAULUS

            Si installé/re-installé différentes versions du plugin, il faut aussi vider manuellement le cache (voir le paragraphe "Mise à jour du plugin" plus haut, dans cette page).
            • Page de login et boite statut pour SPIP

              14 janvier 08:24, par JF

              Alors, après avoir passé une partie de l’après-midi de Dimanche sur la question...

              - Cache vidé et revidé, plugin désinstallé et re-installé (n fois) : rien de mieux.

              - Le répertoire indiqué plus haut (action) a bien ce qu’il faut là où il faut.

              - Voilà le log d’une tentative de connection (login public) échouée (en utilisant mon login/passwd) :

              Jan 13 17:06:50 127.0.0.1 (pid 3032) echec login :

              Jan 13 17:06:50 127.0.0.1 (pid 3032) redirige : spip.php ?rubrique3&var_erreur=pass&url=spip.php%3Frubrique3

              Jan 13 17:06:50 127.0.0.1 (pid 3032) calcul (0.01s) [plugins/login_logout/formulaires/login] id_auteur=’1’, nom=’Jeff’, bio=’Géologue et célèbre’, email=’jfmoyen@wanadoo.fr’, login=’Jeff’, pass=’0d6d790d897c44f26f59ac15ef09fd3e’, low_sec=’hK7GoJYx’, statut=’0minirezo’, maj=’2008-01-13 16:23:57’, htpass=’$1$d23L6CAg$nrszyL3rLugrH4.GlHQ.A.’, en_ligne=’2008-01-13 16:08:57’, alea_actuel=’11622386514787cc736dd469.91931752’, alea_futur=’14112059104789dad2540a47.69985005’, prefs=’a:4 :s:3 :"cnx" ;s:5 :"perma" ;s:7 :"couleur" ;d:3 ;s:7 :"display" ;d:2 ;s:7 :"options" ;s:8 :"avancees" ;’, cookie_oubli=’100794554247877ac4e9eac3.24369064’, source=’spip’, idx=’oui’, action2=’http://127.0.0.1/famille.moyen.trav/spip.php ?action=cookie’, erreur=’Erreur de mot de passe.’, action=’spip.php ?rubrique3&url=spip.php%3Frubrique3’, url=’spip.php ?rubrique3’, login_alt=’Jeff’, self=’spip.php ?rubrique3&url=spip.php%3Frubrique3’, lang=’fr’, date=’2008-01-13 17:06:50’, date_redac=’2008-01-13 17:06:50’ (1371 octets)

              Jan 13 17:06:50 127.0.0.1 (pid 3032) Creation du cache 8/ech-ech-Jef-spi-spi-fr.d8c6b467 pour 3600 secondes

              Jan 13 17:06:50 127.0.0.1 (pid 3032) calcul (0.00s) [dist/formulaires/administration] action=’spip.php ?rubrique3&url=spip.php%3Frubrique3’, divclass=’spip-admin-float’, lang=’fr’, calcul=’calcul’, use_cache=’ *’, id_rubrique=’3’, voir_rubrique=’http://127.0.0.1/famille.moyen.trav/ecrire/ ?exec=naviguer&id_rubrique=3’, date=’2008-01-13 17:06:50’, date_redac=’2008-01-13 17:06:50’ (327 octets)

              - Le même, en essayant avec un login qui n’existe pas :

              Jan 13 17:09:59 127.0.0.1 (pid 3032) echec login :

              Jan 13 17:09:59 127.0.0.1 (pid 3032) redirige : spip.php ?rubrique3&var_erreur=pass&url=spip.php%3Frubrique3

              Jan 13 17:10:00 127.0.0.1 (pid 3032) calcul (0.00s) [dist/formulaires/administration] action=’spip.php ?rubrique3&url=spip.php%3Frubrique3’, divclass=’spip-admin-float’, lang=’fr’, calcul=’calcul’, use_cache=’ *’, id_rubrique=’3’, voir_rubrique=’http://127.0.0.1/famille.moyen.trav/ecrire/ ?exec=naviguer&id_rubrique=3’, date=’2008-01-13 17:10:00’, date_redac=’2008-01-13 17:10:00’ (327 octets)

              Jan 13 17:10:00 127.0.0.1 (pid 3032) cron : visites (0.00s)

              (il n’affiche pas le message d’erreur detaillé, bien que je le lui ai demandé dans les options de config ; il me dit "erreur de mot de passe")

              - La seule idée que je puisse avoir : le plugin est-il vraiment compatible avec 1.9.2 ? Dans la page d’activation du plugin ( /ecrire/ ?exec=admin_plugin ), il est écrit "Page login et boite statut paramétrables aprè activation via la page de configuration", avec un lien vers /ecrire/ ?exec=configuration. Or, quand je clique sur ce lien j’ai une erreur 404 "The requested URL /ecrire/ was not found on this server.". Ou alors, il reste sur mon install des "scories" de la 1.9.1 qui existait avant, et c’est ce qui met le bazar ?

              Merci,

              JF

              • Page de login et boite statut pour SPIP

                14 janvier 10:34, par Christian PAULUS

                Mmm. C’est un multi-sites. Rien que "http://127.0.0.1/famille.moyen.trav/ecrire/" fait comprendre ça car "ecrire" n’est pas à la racine.

                D’où les erreurs 404.

                LiLo n’est pas prévu pour ça. Pour le moment. Je n’ai pas de multi-sites sous la main, mais ça ne devrait pas être trop difficile à corriger.

                Un peu de patience.

    • Page de login et boite statut pour SPIP

      11 janvier 15:35, par JF

      Tiens, et puis j’ai aussi (apparement) un autre problème dans l’espace privé : quand je survole les menus du haut (configuration, statistiques, etc.), je n’arrive plus à voir les "pop-ups" ... (Firefox & Opera). Difficile de savoir si le plugin est en cause ou pas...
    • Page de login et boite statut pour SPIP

      11 janvier 15:45, par JF

      Et puis, une p’tite dernière (jusqu’à la suivante) :

      Avec IE, en essayant de regarder la page d’accueil du site (EasyPHP, copie locale :)

      http://127.0.0.1/monsite/

      Warning : Unknown(plugins/login_logout/balise/statut_public.php) : failed to open stream : No such file or directory in c :\websites\monsite\ecrire\public.php(27) : eval()’d code on line 37

      Warning : (null)() : Failed opening ’plugins/login_logout/balise/statut_public.php’ for inclusion (include_path=’. ;C :\PROGRA 1\EASYPH 1\\php\pear\’) in c :\websites\monsite\ecrire\public.php(27) : eval()’d code on line 37

      Fatal error : Call to undefined function : balise_statut_public_dyn() in c :\websites\monsite\ecrire\public.php(27) : eval()’d code on line 38

      (oui, EasyPHP sait que le répertoire de base de mes sites web est c :\websites ...)

  • Erreur de mot de passe

    25 mars 00:49, par wac06

    bonsoir, exactement ce que je cherché comme plugin pour pouvoir réalisé une connexion en une seule fois. je me sers de #LOGIN_PUBLIC pour conecter des visiteurs sur un espaces restreint du site. mais le probleme c’est que je ne peux pas me connecter a chaque fois avec tout les mot de passes ou utilisateur ca me rend comme erreur : "Erreur de mot de passe" et ça fait des heures que j’essaie de résoudre ce problème sans succès ... j’utilise la dernière version Login-Logout v.0.28 avec spip 1.9.2d ...

    j’ai vérifié que j’avais tout les fichiers bien présent ce qui est bien le cas, la je sais plus quoi faire... merci

    • Erreur de mot de passe

      25 mars 10:36, par Paladin

      Sur http://demoplug.free.fr/, c’est aussi une 192d. Pas de squelette ajouté.

      Si possible : tester sur une version neuve. Juste histoire de valider un soucis local ou système.

      Ensuite tester sur son site de dev. Y-a-t’il un autre plugin ? (peut venir d’un conflit de libs jquery par exemple).

      • Erreur de mot de passe

        25 mars 11:05, par wac06

        oui j’ai Lecteur Multimédia en Flash, Acces Restreint 2.0,Balise Meta,Balise Session, Barre typographique généralisée, Barre Typo V2 ,Boutons d’administration supplémentaires ,cfg,e Couteau Suisse, Barre typographique multilingue , Formulaires&Tables ,Onglets avec pagination, Rédacteur public

        il pourrait y avoir un soucis avec ces plugin ?

        je m’en sers pour accéder a des rubriques (2) avec accès restreint avec un code par rubrique.

        ok je vais aussi testé sur un site tout neuf

        • Erreur de mot de passe

          25 mars 14:10, par Paladin

          Nouvelle version (0.30) qui détecte si jQuery est absent. En effet, LiLo ne peut pas fonctionner sans jQuery, et donne exactement les symptômes décrits.

          En espérant que le problème soit vraiment cette absence du plugin.

          • Erreur de mot de passe

            26 mars 02:05, par wac06

            Même avec la nouvelle version,cela ne marche toujours pas, j’ai testé avec seulement ce plugin en désactivant les autres et vidant le cache et même résultat.

            je sais pas si je l’ai précisé plus haut, mais c’est seulement sur la partie public que cela ne fonctionne pas, celui pour accéder a l’admin avec (/ecrire) fonctionne très bien.

            je sais pas si ça peut joué mais je suis sur un serveur OVH ...

            • Erreur de mot de passe

              26 mars 07:33, par Paladin

              En effet, ce n’est pas du tout le même problème.

              La balise #STATUT_PUBLIC est bien à sa place ?

              Si pas de squelette perso, elle est automatiquement insérée par inc-pied.html qui se trouve dans le répertoire du plugin.

              Par contre, si l’on utilise un inc-pied.html perso, il faut y insérer cette balise.

  • ajouter champs positionnement

    29 mars 13:37, par Beren

    Bonjour et merci pour ce plugin,

    je me demandais s’il était possible d’ajouter 2 champs dans la partie configuration pour pouvoir placer plus finement la position de la boite statut, surtout quand on est en "Mode de positionnement fixe". Le système actuel permettrais de donner le point de référence de positionnement puis 2 champs (sélectionnés automatiquement selon le point de référence choisi) permettraient de fixer un positionnement en pixel (ou en % peut-être aussi) par rapport au bord de l’écran.

    Merci

  • Page de login et boite statut pour SPIP

    17 mai 12:32, par Pierre-Jean

    Bonjours, je suis sous la 1.9.2d avec la version 0.31 de LILO, et le LOGIN PUBLIC se passe sans problèmes, la boite s’affiche convenablement...

    Mais quand je clique sur connection au site privé,

    1 On me redemande de me loguer 2 Il est impossible de se loguer via la page de login que le plugin modifie, après envoi des infos de connection, la page se recharge avec pour seul effet de surligner en rouge les informations à césire...

    Des pistes, idées ... ?

    Voir en ligne : http://www.clubmyhouse.fr

  • Page de login et boite statut pour SPIP

    17 mai 21:36, par cy_altern

    je me suis permis de commiter une petite modification de /formulaires/login.html qui permet de contourner le problème du non-appel de l’ajax qui récupère les alea pour encryptage du mot de passe lorsque le champ "login" est déja rempli.
    voir : http://zone.spip.org/trac/spip-zone...
  • JQUERY annoncé absent... mais non !

    28 mai 13:06, par julien

    Bonjour,

    Plugin login-logout installé sans problème. Tout marche bien... sauf qu’il annonce (brièvement) que JQUERY est absent, et qu’il fonctionne donc en deux étapes comme le login classique SPIP. Or le Couteau Suisse est activé, avec Jquery, et le plugin thickbox marche bien (il utilise Jquery), ainsi mot partout. (Spip-liste et accès restreint aussi installés). Je n’ai rien ajouté dans mes squelettes suite à l’installation de votre plugin (je ne veux qu’avoir une identification en une seule étape, pas le boitier de connexion). Avez-vous une idée de cette détection intenpestive de l’absence de JQuery ? Merci et bravo pour ce plugin. Julien

    • Exemple

      29 mai 16:37, par julien

      Vous pouvez avoir une idée de ce que cela donne : http://electriciens-sans-frontieres.info/ecrire
    • JQUERY annoncé absent... mais non !

      6 juin 10:45, par julien

      En fait ce n’est pas l’absence de jQUERY qui pose problème.

      Il détecte bien JQUERY, mais le login se fait encore en deux étapes... comme si le plugin n’était pas activé. Sauf que c’est bien le look de LILO.

      Qu’est-ce qui peut empêcher lilo de faire une seule étape pour le login ?

      Merci de votre aide !

      Julien

      • JQUERY annoncé absent... mais non !

        8 juillet 19:36, par Christian PAULUS

        La dernière version (ce jour) se veut corriger ce problème de message d’alerte sur la (fausse) absence de JQuery. En fait, le symptome n’apparait que sur des connexions un peu lentes ou le javascript prend bien du temps à activer JQuery.

        Attention à vider le cache à la re-installation.

        Merci à tous.