Anomalie #69

Révision du support LDAP pour les fiches contacts

Added by Grégory MARIGOT - TEICEE about 12 years ago. Updated almost 12 years ago.

Status:Fermé Start date:07/12/2010
Priority:Normal Due date:
Assignee:Grégory MARIGOT - TEICEE % Done:

100%

Category:-
Target version:EpnAdmin-CTN 1.1.2
Version ProxyEPN:1.0

Description

Chaque sauvegarde d'un contact provoque l'enregistrement dans l'annuaire LDAP sous la forme d'une suppression (le login servant de clef) puis recréation, alors que souvent une modification serait plus appropriée.

Parfois la répercution vers le LDAP est même inutile. Par exemple la connexion sur EpnAdmin change le champs last_login qui n'intéresse pas l'annuaire (suppression/recréation inutile). Ou encore l'enregistrement d'un nouveau contact qui fait un 1er "save" en BdD pour récupérer le nouvel id, l'enregistrement Ldap pourrait se faire uniquement sur le "save" final.

La branche des fiches (idem pour les groupes) est indiquée en dur dans les classes CtnUserLdap et CtnGroupLdap. On peut préférer avoir cette donnée regroupée dans la configuration de l'annuaire (app.yml).

La gestion de l'uidNumber des fiches Ldap en génère un nouveau à chaque création de manière incrémentale. Si celà assure un uidNumber unique, il change à chaque recréation donc actuellement à chaque modif. Si ce n'est pas génant actuellement, ce champs n'ayant pas d'utilité, ce n'est pas logique pour autant et nous prive d'une éventuelle utilisation de cet uid.


Related issues

related to Anomalie #64: Cohérence entre base Contacts et annuaire LDAP Fermé 06/29/2010
related to Evolution #68: Gérer un second annuaire LDAP en copie Fermé 07/12/2010
related to Evolution #72: Regénération de l'annuaire LDAP à partir de la BdD EpnAdmin Fermé 07/15/2010
related to Evolution #92: Révision de l'export LDAP Fermé 03/09/2011

Associated revisions

Revision 295
Added by Grégory MARIGOT - TEICEE about 12 years ago

FIX #64: Le DN des contacts LDAP contient le login en plus du nom+prénom pour gérer les homonymes.
NEW #72: Une action user/ldapRegen permet à l'admin de regénérer les groupes et fiches de l'annuaire Ldap.
FIX #69: Quelques corrections et controles supplémentaire sur les classes Ldap révisées.
CHANGE #70: Seul l'admin peut anonymiser les contacts, pour les autres la page invite à le contacter.

History

Updated by Grégory MARIGOT - TEICEE about 12 years ago

  • Status changed from Nouveau to Résolu
  • % Done changed from 0 to 100

Modifications publiées sur le svn (r292) :

  • Suppression de la classe EPNadminLdap au profit d'un usage direct de la classe Ldap. Pour celà cette dernière a évolué en disposant d'un constructeur qui va récupérer les informations nécessaires dans le fichier de configuration app.yml.
  • La configuration d'un annuaire Ldap contient désormais son BaseDN. Cette données est récupéré à la construction d'un objet Ldap, il n'est donc plus nécessaire d'avoir ce chemin en dur dans les classes CtnUserLdap et CtnGroupLdap.
  • Amélioration de la classe Ldap par l'ajout de quelques méthodes et paramètres optionnels : prise en compte du BaseDN, récupération du DN ou du RDN, méthodes copy() et rename() en cas de changement du DN...
  • La sauvegarde vers le LDAP gère la modification des fiches (auparavant elles étaient systématiquement supprimées pour être recréées). Ceci évite des requêtes inutiles et permet de mieux gérer les attributs ne devant pas être modifiés (password, uidNumber).
  • Le champs uidNumber des contacts dans l'annuaire n'est plus défini de manière incrémental : il est déterminé à partir de l'id du user dans la BdD (+ 1000). Cette méthode permet facilement d'avoir un uid unique (sur l'ensemble du Ldap et pas uniquement au groupe comme auparavant). De plus le lien peut être établi entre EpnAdmin et l'annuaire (possibilité d'utiliser ce champs comme clé au lieu du login par exemple).
  • Désactivation de la synchro LDAP lors de la sauvegarde d'un contact pour certaines opérations (ex: enregistrement du last_login qui auparavant provoqué suppression/recréation du contact inutilement), grâce à un flag activable par $user->setSyncLdap()

En bref : le support Ldap a été révisé pour mieux gérer l'annuaire, la configuration est mieux centralisée, le nombre de requêtes vers l'annuaire a été réduit au strict nécessaire.

PS: Une modification a aussi été retirée lors de l'enregistrement en BdD d'un user avec son profil : le user été sauvé 2 fois. Mais l'enregistrement avant son profil ne semble pas nécessaire.

Updated by Grégory MARIGOT - TEICEE almost 12 years ago

Modifications publiées sur le svn (r299) :

A noter qu'un changement a été effectué sur la valeur du champs UidNumber.

L'utilisation de la référence des contacts a été préférée à l'Id des fiches dans la BDD. Cette référence est également de type numérique et unique, elle peut donc faire l'affaire tout en étant plus pertinente qu'un id interne à la base sql sans intérêt particulier.

Ce choix sera actif avec la version cible 1.1.3

Updated by Grégory MARIGOT - TEICEE almost 12 years ago

  • Status changed from Résolu to Fermé

Also available in: Atom PDF