[spip-dev] ldap.php fabrique des doublons

Bonjour,

J'avais posté le pb sur spip.user
(http://article.gmane.org/gmane.comp.web.spip.user/139843/) et il m'a
été conseillé de m'adresser à cette liste.

En résumé: si spip a affaire à un serveur ldap insensible à la casse
pour les login (plus exactement dans ce cas, qui transforme en
minuscules), il va créer un nouveau compte à chaque nouvelle variation
dans la casse. D'où, des auteurs (qui ne tapent pas toujours leur identifiant de la même manière, visiblement) avec le même login / email / nom.

Exemple:
Je me connecte avec fmoinarD, puis avec Fmoinard; les deux derniers
enregistrements de spip_auteurs sont (en trichant sur l'email):

INSERT INTO `spip_auteurs` (`id_auteur`, `nom`, `bio`, `email`,
`nom_site`, `url_site`, `login`, `pass`, `low_sec`, `statut`, `maj`,
`pgp`, `htpass`, `en_ligne`, `imessage`, `messagerie`, `alea_actuel`,
`alea_futur`, `prefs`, `cookie_oubli`, `source`, `lang`, `extra`) VALUES
(231, 'Moinard Frederic', '', 'Frederic.Moinard_at_ac-reunion_point_fr',
'', '', 'fmoinard', '', '', '1comite', '2009-02-13 13:38:12', '', '',
'0000-00-00 00:00:00', NULL, NULL, NULL, NULL, 'a:1:{s:3:"cnx";s:0:"";}', NULL, 'ldap', '', NULL),
(232, 'Moinard Frederic', '', 'Frederic.Moinard_at_ac-reunion_point_fr', '', '', 'fmoinard', '', '', '1comite', '2009-02-13 13:39:49', '', '', '0000-00-00 00:00:00', NULL, NULL, NULL, NULL,'a:1:{s:3:"cnx";s:0:"";}', NULL, 'ldap', '', NULL);

Il doit y avoir moyen de modifier ldap.php pour qu'il vérifie avant, sil
existe un doublon (casse ou pas casse)

-----Message d'origine-----

-----Message d'origine-----
De : Frédéric Moinard [mailto:fcjotw@orange.fr]
Envoyé : mardi 17 février 2009 11:51
À : spip-dev@rezo.net
Objet : [spip-dev] ldap.php fabrique des doublons
Exemple:
Je me connecte avec fmoinarD, puis avec Fmoinard; les deux
derniers enregistrements de spip_auteurs sont (en trichant
sur l'email):

Comment ça en trichant sur l'email ? Sur spip user, tu avait dit que tu
créais plusieurs auteurs avec le même email si je ne m'abuse...

Bonjour,

Olivier GENDRIN a écrit :

-----Message d'origine-----
De : Frédéric Moinard [mailto:fcjotw@orange.fr] Envoyé : mardi 17 février 2009 11:51
À : spip-dev@rezo.net
Objet : [spip-dev] ldap.php fabrique des doublons
Exemple:
Je me connecte avec fmoinarD, puis avec Fmoinard; les deux derniers enregistrements de spip_auteurs sont (en trichant sur l'email):

Comment ça en trichant sur l'email ? Sur spip user, tu avait dit que tu
créais plusieurs auteurs avec le même email si je ne m'abuse...

Que j'ai posté en remplaçant '@' par '_at_' et '.' par '_point_' après avoir copié le dump de phpmyadmin. Je confirme humblement sans rien modifier (pma, cocher les deux enregistrements dans spip_auteurs, exporter, ^c ^v):
INSERT INTO `spip_auteurs` (`id_auteur`, `nom`, `bio`, `email`, `nom_site`, `url_site`, `login`, `pass`, `low_sec`, `statut`, `maj`, `pgp`, `htpass`, `en_ligne`, `imessage`, `messagerie`, `alea_actuel`, `alea_futur`, `prefs`, `cookie_oubli`, `source`, `lang`, `extra`) VALUES
(231, 'Moinard Frederic', '', 'Frederic.Moinard@ac-reunion.fr', '', '', 'fmoinard', '', '', '1comite', '2009-02-13 13:38:12', '', '', '0000-00-00 00:00:00', NULL, NULL, NULL, NULL, 'a:1:{s:3:"cnx";s:0:"";}', NULL, 'ldap', '', NULL),
(232, 'Moinard Frederic', '', 'Frederic.Moinard@ac-reunion.fr', '', '', 'fmoinard', '', '', '1comite', '2009-02-13 13:39:49', '', '', '0000-00-00 00:00:00', NULL, NULL, NULL, NULL, 'a:1:{s:3:"cnx";s:0:"";}', NULL, 'ldap', '', NULL);

Le ldap a répondu avec l'identifiant en minuscules, spip a créé deux auteurs, même login, même email.
De plus:
  SELECT `id_auteur` , `email` , `source`
FROM `spip_auteurs`
WHERE `email` LIKE '%moinard%'
LIMIT 0 , 1
donne:
INSERT INTO `spip_auteurs` (`id_auteur`, `email`, `source`) VALUES
(1, 'frederic.moinard@ac-reunion.fr', 'spip');