Not logged in. · Lost password · Register
Forum: Non-English Discussion French discussion RSS
Eviter les doublons de courriel à l'inscription
Avatar
dmr #1
Member since Dec 2018 · 8 posts · Location: Belgique
Group memberships: Members
Show profile · Link to this post
Subject: Eviter les doublons de courriel à l'inscription
Bonjour,

Est-il possible d'obliger les inscriptions avec une adresse mail différentes ?

J'ai testé deux inscriptions avec des noms différents mais une même adresse mail et la deuxième inscription s'est déroulée sans problème.  Or j'aimerais qu'il ne puisse pas y avoir de doublons au niveau des courriels des utilisateurs.

D'avance merci,
Avatar
schplurtz (Moderator) #2
Member since Nov 2009 · 477 posts · Location: France, Finistère
Group memberships: Global Moderators, Members
Show profile · Link to this post
Bonsoir, ou bonjour

J'observe le même phénomène. Je n'arrive pas à savoir s'il s'agit d'un bug ou non... Tu peux tout de même tenter un rapport de bug sur https://github.com/splitbrain/dokuwiki/issues

Pour changer le comportement actuel, on peut hacker un peu le code. Évidemment, la modification est perdue à chaque mise à jour de DokuWiki. Je ne sais pas si ça fonctionne pour tous les systèmes d'authentification. Pour le système par défaut, authplain, ça marche. Enfin c'est pas vraiment testé non plus. Peut-être qu'il existe des cas où ce hack rapide ne fonctionnera pas, par exemple, s'il existe déjà une adresse qui contient l'adresse qu'on voudrait ajouter (ex il existe jpdupont@example.com et on veut ajouter pdupont@example.com, le diagnostique pourrait être "non l'utilisateur existe déjà"). En tou cas, il faut modifier la méthode createUser et ajouter ce test :
  1. if($this->getUserCount(array('mail' => $mail)) > 0) {
  2.     msg($this->getLang('userexists'), -1);
  3.     return false;
  4. }

Donc, par exemple, pour authplain, Modifier le fichier lib/plugins/authplain/auth.php. Le début de la méthode createuser doit devenir ceci :
  1.     public function createUser($user, $pwd, $name, $mail, $grps = null) {
  2.         global $conf;
  3.         global $config_cascade;
  4.  
  5.         // user mustn't already exist
  6.         if($this->getUserData($user) !== false) {
  7.             msg($this->getLang('userexists'), -1);
  8.             return false;
  9.         }
  10.  
  11.         if($this->getUserCount(array('mail' => $mail)) > 0) {
  12.             msg($this->getLang('userexists'), -1);
  13.             return false;
  14.         }
Avatar
dmr #3
Member since Dec 2018 · 8 posts · Location: Belgique
Group memberships: Members
Show profile · Link to this post
bonjour,

Merci pour ce début de piste...

Est-ce qu'il y aurait une fonction qui permettrait de récupérer la liste des adresses mails correspondant à la recherche plutôt que le nombre ?

Je pourrais alors parcourir cette liste afin de savoir si "pdupont@example.com" correspond exactement à l'une des adresses de la liste.
Si oui, l'adresse est déjà utilisée ; si non, c'est une nouvelle adresse.
Avatar
schplurtz (Moderator) #4
Member since Nov 2009 · 477 posts · Location: France, Finistère
Group memberships: Global Moderators, Members
Show profile · Link to this post
En regardant le code rapidement, je m'étais dit, "tiens, il est possible que ça pose problème avec jpdupont et pdupont", mais je n'ai pas vérifié. as-tu fait le test ?

Sinon, ce que tu recherches est dans  /lib/plugins/authplain/auth.php. Il y a la méthode retrieveUsers.
  1. public function retrieveUsers($start = 0, $limit = 0, $filter = array())
et pour les autres systèmes d'authentification, voir xref retrieveUsers.
This post was edited on 2019-03-09, 11:14 by schplurtz.
Close Smaller – Larger + Reply to this post:
Verification code: VeriCode Please enter the word from the image into the text field below. (Type the letters only, lower case is okay.)
Smileys: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Special characters:
Go to forum
Imprint
This board is powered by the Unclassified NewsBoard software, 20150713-dev, © 2003-2015 by Yves Goergen
Current time: 2019-10-17, 10:07:04 (UTC +02:00)