r14803 - branches/spip-2.0/ecrire/auth spip/ecrire/auth

Author: esj@rezo.net
Date: 2009-12-22 11:22:21 +0100 (mar, 22 déc 2009)
New Revision: 14803

Log:
La fonction auth_ldap_search, appelée en mode sans vérif du mot de passe, retournait le login au lieu de retourner le DN comme dans l'autre cas. Pas d'utilisation dans le noyau, mais gênant pour les extensions.

Modified:
   branches/spip-2.0/ecrire/auth/ldap.php
   spip/ecrire/auth/ldap.php

Details: http://trac.rezo.net/trac/spip/changeset/14803

Le 22 déc. 2009 à 11:22, esj@rezo.net a écrit :

Author: esj@rezo.net
Date: 2009-12-22 11:22:21 +0100 (mar, 22 déc 2009)
New Revision: 14803

Log:
La fonction auth_ldap_search, appelée en mode sans vérif du mot de passe, retournait le login au lieu de retourner le DN comme dans l'autre cas. Pas d'utilisation dans le noyau, mais gênant pour les extensions.

Si, auth_ldap_search est utilisée par la fonction
auth_ldap_retrouver_login
http://trac.rezo.net/trac/spip/browser/spip/ecrire/auth/ldap.php#L172

qui fait partie de l'api auth/ et dont on attend qu'elle retourne le login (dans la table SPIP) de la personne qui essaye de se loger, sur la base des informations qu'elle a saisie.

Cédric

Le 22 déc. 2009 à 11:31, cedric.morin@yterium.com a écrit :

Si, auth_ldap_search est utilisée par la fonction
auth_ldap_retrouver_login
http://trac.rezo.net/trac/spip/browser/spip/ecrire/auth/ldap.php#L172

qui fait partie de l'api auth/ et dont on attend qu'elle retourne le login (dans la table SPIP) de la personne qui essaye de se loger, sur la base des informations qu'elle a saisie.

oui mais auth_ldap_retrouver_login ne considère que le résultat booléen de auth_ldap_search:
il n'y avait donc pas de pb dans le noyau, en revanche auth_ldap_search n'était utilisable qu'en tant que fonction booléenne ce qui était dommage et trompeur (et m'a trompé).

Committo,Ergo:Sum

Le 22 déc. 2009 à 11:38, Emmanuel Saint-James a écrit :

Le 22 déc. 2009 à 11:31, cedric.morin@yterium.com a écrit :

Si, auth_ldap_search est utilisée par la fonction
auth_ldap_retrouver_login
http://trac.rezo.net/trac/spip/browser/spip/ecrire/auth/ldap.php#L172

qui fait partie de l'api auth/ et dont on attend qu'elle retourne le login (dans la table SPIP) de la personne qui essaye de se loger, sur la base des informations qu'elle a saisie.

oui mais auth_ldap_retrouver_login ne considère que le résultat booléen de auth_ldap_search:

non, je pense qu'un morceau t'as échappé :
http://trac.rezo.net/trac/spip/browser/spip/ecrire/inc/auth.php#L377
utilise le login retourné par
http://trac.rezo.net/trac/spip/browser/spip/ecrire/inc/auth.php#L347
issu de
http://trac.rezo.net/trac/spip/browser/spip/ecrire/auth/ldap.php#L172

Et donc je confirme que la fonction auth_xxx_retrouver_login est supposée
"Retrouver le login de quelqu'un qui cherche a se loger"
comme cela est clairement indiqué dans son en-tête de commentaires.

Si il y a un manque dans l'API auth pour le cas que tu sembles rencontrer, on peut l'enrichir ou la faire évoluer, compte tenu qu'elle n'est pas encore documentée autre part que dans le code, et que ma vision de LDAP n'était pas forcément suffisante pour extrapoler tous les besoins.

Néanmoins, il serait bien de garder un comportement commun des fonctions pour les différentes méthodes, tel qu'attendu, et éviter d'avoir des comportements dérogatoires pour une méthode donnée.

il n'y avait donc pas de pb dans le noyau, en revanche auth_ldap_search n'était utilisable qu'en tant que fonction booléenne ce qui était dommage et trompeur (et m'a trompé).

auth_ldap_search est une fonction propre à l'auth ldap, et n'est pas dans le périmètre de l'api dont les fonctions sont décrites exhaustivement dans
http://trac.rezo.net/trac/spip/browser/spip/ecrire/inc/auth.php#L302
et ensuite implémentées (ou pas) dans chaque auth/xxx

On peut donc faire évoluer
auth_ldap_search
pour lui faire retourner le login ou le dn selon le besoin de l'appelant.

Cédric

Le 22 déc. 2009 à 14:22, cedric.morin@yterium.com a écrit :

non, je pense qu'un morceau t'as échappé :

Vu les URLs que tu donnes, je crois plutôt qu'il t'a échappé que je parlais des branches 2.0 et 2.1 à la fois.

Et donc je confirme que la fonction auth_xxx_retrouver_login est supposée
"Retrouver le login de quelqu'un qui cherche a se loger"
comme cela est clairement indiqué dans son en-tête de commentaires.

mais je n'ai jamais dit le contraire, tu confonds auth_ldap_retrouver et auth_ldap_retrouver_login

Néanmoins, il serait bien de garder un comportement commun des fonctions pour les différentes méthodes, tel qu'attendu, et éviter d'avoir des comportements dérogatoires pour une méthode donnée.

C'est justement ce que je viens de faire parce que ce n'était pas le cas.

On peut donc faire évoluer
auth_ldap_search
pour lui faire retourner le login ou le dn selon le besoin de l'appelant.

elle retourne à présent toujours le DN, le login etant son argument, ce serait pas très utile de lui faire retourner ce qu'on lui donne en argument.

Le 22 déc. 2009 à 14:41, Emmanuel Saint-James a écrit :

Le 22 déc. 2009 à 14:22, cedric.morin@yterium.com a écrit :

non, je pense qu'un morceau t'as échappé :

Vu les URLs que tu donnes, je crois plutôt qu'il t'a échappé que je parlais des branches 2.0 et 2.1 à la fois.

Non j'avais bien vu, en revanche je me suis pris les pieds dans la fonction auth_ldap_retrouver_login que j'avais mal lue, au contraire de toi.
Toutes mes excuses, donc, je retourne me cacher dans mon coin.

Cédric