Re: [fonctionnement inscription public] : mail de confirmation
Cédric Morin <[email protected]>
| Newsgroups | gmane.comp.web.spip.devel |
|---|---|
| Message-ID | <[email protected]> |
C'est dans la boite
http://core.spip.org/projects/spip/repository/revisions/23266
(avec quelques fioritures pour que le formulaire de login présente une
erreur propre quand un nouveau essaye de se connecter)
--
Cédric
Guillaume Fahrner a écrit :
> Bonjour à tous,
>
> pour résumer et avancer, je peux proposer ce patch pour les points
> suivants :
>
> 1/ l'action confirmer appelle elle aussi la fonction
> confirmer_statut_inscription()
>
> ajout de l'appel à confirmer_statut_inscription() ici :
> https://core.spip.net/projects/spip/repository/entry/spip/ecrire/action/confirmer_inscription.php#L41
>
> /confirmer_statut_inscription($auteur);/
>
> 2/ le login avec statut appelle une autorisation dédiée avec le statut
> en argument, qui par défaut enverra true pour tous les statuts sauf
> 5poubelle mais qu'il sera possible de passer à false pour nouveau aussi,
> via surcharge
>
> ajout de l'autorisation autoriser_auteur_authentifier_dist dans
> ecrire/inc/autoriser.php :
>
> /**
> * Autorisation de s'authentifier
> *
> * Permet à des plugins de modifier le comportement au login de SPIP
> **/
> /function autoriser_auteur_authentifier_dist($faire, $type, $id, $qui,
> $opt) {
> $statut = sql_getfetsel('statut', 'spip_auteurs', 'id_auteur=' .
> intval($id));
> /
> / if ( ///$statut/ == '5poubelle' ) return false;
> /
> / return true;
> }/
>
> vérification de l'autorisation générique ici :
> https://core.spip.net/projects/spip/repository/entry/spip/ecrire/inc/auth.php#L211
>
> / if ( ! autoriser('auteur_authentifier', 'auteur',
> $row['id_auteur']) ) {
> return $row;
> }/
>
>
> J'espère que ça va dans le bon sens, encore merci Cédric pour le temps
> que tu y as consacré.
>
> Si c'est bon pour vous je développe et je test sur mon spip avant
> d'envoyer un patch.
>
>
> g0uZ
>
> Le 28 septembre 2016 à 09:36, Cédric Morin <[email protected]
> <mailto:[email protected]>> a écrit :
>
> Hello,
>
> la reflexion est intéressante car en effet il devient de moins en
> moins sérieux d'envoyer ce mot de passe par email en clair.
> En ce qui me concerne je serai plutot pour une suppression complète
> des mots de passe (ou disons que ça serait un mode de secours
> dérogatoire), l'authentification se faisant systématiquement par
> l'envoi d'un email avec un lien à cliquer :
> Login : tu rentre ton email, submit > tu reçois un mail > tu clic et
> tu est logué
>
> Tant que le core continue à envoyer le mot de passe par email,
> difficile de changer le moment où on valide un statut, car cela
> restreindrait le fonctionnement nominal : la possession du mot de
> passe implique bien la reception du mail.
>
> A partir de ce moment là il y a plusieurs façon de faire pour votre
> plugin :
>
> - avoir 2 étapes : etape 1 tu ne rentre que l'email et tu reçois un
> mail avec un lien à cliquer qui te donne accès à un formulaire de
> choix de mot de passe (pourquoi continuer à demander un login ?)
>
> Perso c'est ce que je préfèrerai car c'est un processus plus engageant.
> Au départ l'utilisateur ne rentre qu'un email, c'est le plus simple
> possible et quand on lui présente le formulaire de choix de mot de
> passe il est déjà dans le processus d'inscription, il a déjà donné
> son email et donc il sera moins tenté de s'arrêter en cours.
> A contrario il est montré que plus un formulaire d'inscription
> comporte d'informations à remplir, plus il arrête d'utilisateurs.
>
>
> - inscrire les auteurs en statut 5poubelle au lieu de nouveau, ce
> qui fait qu'ils ne peuvent pas se loger et le plugin fournit une
> action de confirmation spécifique qui se charge de valider et
> activer le compte
>
>
> Cela dit en reflechissant il est peut-être possible de faire un
> compromis, en modifiant le core pour que
> 1/ l'action confirmer appelle elle aussi la fonction
> confirmer_statut_inscription()
> 2/ le login avec statut appelle une autorisation dédiée avec le
> statut en argument, qui par défaut enverra true pour tous les
> statuts sauf 5poubelle mais qu'il sera possible de passer à false
> pour nouveau aussi, via surcharge
>
> Cela devrait permettre de garder le fonctionnement inchangé pour le
> core et de faire ce que vous voulez sur le plugin
>
> --
> Cédric
>
>
>
> Guillaume Fahrner a écrit :
>
> Bonjour à tous,
>
> comme discuté sur IRC je voulais discuté avec vous d'un problème
> lié au
> fonctionnement des inscription coté public sur nos SPIP.
>
> Actuellement le mail de confirmation reçu par le visiteur contient :
>
> - un login/mdp
> - un lien de confirmation
>
> Le lien de confirmation est actuellement inutile sauf par confort
> d'utilisation ; l'inscription est confirmée au moment ou
> l'utilisateur
> s'authentifie (au niveau du code aussi via
> confirmer_statut_inscription() appelée dans
> ecrire/inc/auth.php/auth_init_droits() ).
>
> Pour des raisons de sécurité, nous avons développé ce plugin avec
> Rastapopoulos
> (http://contrib.spip.net/Mot-de-passe-des-l-inscription
> <http://contrib.spip.net/Mot-de-passe-des-l-inscription>
> <http://contrib.spip.net/Mot-de-passe-des-l-inscription
> <http://contrib.spip.net/Mot-de-passe-des-l-inscription>>).
> Avec, seul le
> lien de confirmation est envoyé dans le mail, le mdp est choisi à
> l'inscription.
>
> Sans m'étendre il est plus sécurisé de laisser l'utilisateur
> choisir son
> mot de passe que d'en générer un aléatoire envoyé par mail
> (HTTPS>SMTP(S)).
>
> A termes il est envisagé d'intégrer ce fonctionnement dans le
> core de
> SPIP. Hors en l'état actuel, avec le plugin il est possible de
> créer un
> compte avec une adresse email invalide (!) : le login et le mdp,
> choisi
> à l'inscription, permettent de valider le compte en s'authentifiant.
>
> D'ou mon idée de rendre réellement obligatoire (comme sur tous
> les sites
> web) le passage par le lien de confirmation de l'adresse mail.
>
> Techniquement ca se traduirait par les modifications suivantes :
>
> - déplacer l'appel à confirmer_statut_inscription() qui est dans
> ecrire/inc/auth.php/auth_init_droits() (appelé a chaque login)
> dans
> ecrire/action/confirmer_inscription.php
> - modifier auth_init_droits() pour refuser l'authentification pour
> $row['statut'] == 'nouveau'
>
> Est ce envisageable ?
>
> D'avance merci pour le temps que vous y consacrerez :-)
>
> g0uZ@root-me
>
> _______________________________________________
> liste: http://listes.rezo.net/mailman/listinfo/spip-dev
> <http://listes.rezo.net/mailman/listinfo/spip-dev>
> doc: http://www.spip.net/
> dev: http://trac.rezo.net/trac/spip/
> <http://trac.rezo.net/trac/spip/>
> irc://irc.freenode.net/spip <http://irc.freenode.net/spip>
>
>