- LSldapObject : Ajout de la possibilite de trigger avant et après la
authorBenjamin Renard <brenard@easter-eggs.com>
Tue, 14 Oct 2008 11:58:00 +0000 (11:58 +0000)
committerBenjamin Renard <brenard@easter-eggs.com>
Tue, 14 Oct 2008 11:58:00 +0000 (11:58 +0000)
modification d'un attribut en particulier
- config.error_code.php : Revue de l'encodage / allègement du fichier

trunk/conf/LSobjects/config.LSobjects.LSeepeople.php
trunk/conf/config.error_code.php
trunk/includes/class/class.LSldapObject.php

index 3893f3e..1ecf9c4 100644 (file)
@@ -353,7 +353,8 @@ $GLOBALS['LSobjects']['LSeepeople'] = array (
         'modify' => 1,
         'create' => 1,
         'lostPassword' => 1
-      )
+      ),
+      'after_modify' => 'valid'
     ),
     'lsRecoveryHash' => array (
       'label' => _('Hash de recouvrement du mot de passe'),
index 91020d5..f822990 100644 (file)
 
 $GLOBALS['LSerror_code'] = array (
   '-1' => array (
-    'msg' => _("Erreur inconnue!"),
-    'level' => 'c'
+    'msg' => _("Erreur inconnue!")
   ),
   0 => array(
-    'msg' => "%{msg}",
-    'level' => 'c'
+    'msg' => "%{msg}"
   ),
   // LSldap
   1 => array (
-    'msg' => _("LSldap : Erreur durant la connexion au serveur LDAP (%{msg})."),
-    'level' => 'c'
+    'msg' => _("LSldap : Erreur durant la connexion au serveur LDAP (%{msg}).")
   ),
   2 => array (
-    'msg' => _("LSldap : Erreur durant la recherche LDAP (%{msg})."),
-    'level' => 'c'
+    'msg' => _("LSldap : Erreur durant la recherche LDAP (%{msg}).")
   ),
   3 => array (
-    'msg' => _("LSldap : Type d'objet inconnu."),
-    'level' => 'c'
+    'msg' => _("LSldap : Type d'objet inconnu.")
   ),
   4 => array (
-    'msg' => _("LSldap : Erreur durant la récupération de l'entrée Ldap."),
-    'level' => 'c'
+    'msg' => _("LSldap : Erreur durant la récupération de l'entrée Ldap.")
   ),
   5 => array (
-    'msg' => _("LSldap : Erreur durant la mise Ã  jour de l'entrée Ldap (DN : %{dn})."),
-    'level' => 'c'
+    'msg' => _("LSldap : Erreur durant la mise à jour de l'entrée Ldap (DN : %{dn}).")
   ),
   6 => array (
-    'msg' => _("LSldap : Erreur durant la suppression des attributs vides."),
-    'level' => 'w'
+    'msg' => _("LSldap : Erreur durant la suppression des attributs vides.")
   ),
   7 => array (
-    'msg' => _("LSldap : Erreur durant le changement du DN de l'objet."),
-    'level' => 'w'
+    'msg' => _("LSldap : Erreur durant le changement du DN de l'objet.")
   ),
   
   // LSldapObject
   21 => array (
-    'msg' => _("LSldapObject : Type d'objet inconnu."),
-    'level' => 'c'
+    'msg' => _("LSldapObject : Type d'objet inconnu.")
   ),
   22 => array (
-    'msg' => _("LSldapObject : Formulaire de mise jour inconnu par l'objet %{msg}."),
-    'level' => 'c'
+    'msg' => _("LSldapObject : Formulaire de mise jour inconnu par l'objet %{msg}.")
   ),
   23 => array (
-    'msg' => _("LSldapObject : Aucun formulaire n'existe dans l'objet %{msg}."),
-    'level' => 'c'
+    'msg' => _("LSldapObject : Aucun formulaire n'existe dans l'objet %{msg}.")
   ),
   24 => array (
-    'msg' => _("LSldapObject : La fonction %{func} pour valider l'attribut %{attr} de l'objet %{obj} est inconnue."),
-    'level' => 'c'
+    'msg' => _("LSldapObject : La fonction %{func} pour valider l'attribut %{attr} de l'objet %{obj} est inconnue.")
   ),
   25 => array (
-    'msg' => _("LSldapObject : Des données de configuration sont manquant pour la validation de l'attribut %{attr} de l'objet %{obj}."),
-    'level' => 'c'
+    'msg' => _("LSldapObject : Des données de configuration sont manquant pour la validation de l'attribut %{attr} de l'objet %{obj}.")
   ),
   26 => array (
-    'msg' => _("LSldapObject : Erreur de configuration : L'objet %{obj} ne possède pas d'attribut %{attr}."),
-    'level' => 'c'
+    'msg' => _("LSldapObject : Erreur de configuration : L'objet %{obj} ne possède pas d'attribut %{attr}.")
   ),
   27 => array (
-    'msg' => _("LSldapObject : La fonction %{func} devant Ãªtre executée avant la modification n'existe pas."),
-    'level' => 'c'
+    'msg' => _("LSldapObject : La fonction %{func} devant être executée avant la modification n'existe pas.")
   ),
   28 => array (
-    'msg' => _("LSldapObject : L'execution de la fonction %{func} devant Ãªtre executée avant la modification a Ã©chouée."),
-    'level' => 'c'
+    'msg' => _("LSldapObject : L'execution de la fonction %{func} devant être executée avant la modification a échouée.")
   ),
   29 => array (
-    'msg' => _("LSldapObject : La fonction %{func} devant Ãªtre executée après la modification n'existe pas."),
-    'level' => 'c'
+    'msg' => _("LSldapObject : La fonction %{func} devant être executée après la modification n'existe pas.")
   ),
   30 => array (
-    'msg' => _("LSldapObject : L'execution de la fonction %{func} devant Ãªtre executée après la modification a Ã©chouée."),
-    'level' => 'c'
+    'msg' => _("LSldapObject : L'execution de la fonction %{func} devant être executée après la modification a échouée.")
   ),
   31 => array (
-    'msg' => _("LSldapObject : Il manque des informations de configuration du type d'objet %{obj} pour la création du nouveau DN."),
-    'level' => 'c'
+    'msg' => _("LSldapObject : Il manque des informations de configuration du type d'objet %{obj} pour la création du nouveau DN.")
   ),
   32 => array (
-    'msg' => _("LSldapObject : L'attribut %{attr} de l'objet n'est pas encore définis. Il est impossible de generer un nouveau DN."),
-    'level' => 'c'
+    'msg' => _("LSldapObject : L'attribut %{attr} de l'objet n'est pas encore définis. Il est impossible de generer un nouveau DN.")
   ),
   33 => array (
-    'msg' => _("LSldapObject : Sans DN, l'objet n'a put Ãªtre modifié."),
-    'level' => 'c'
+    'msg' => _("LSldapObject : Sans DN, l'objet n'a put être modifié.")
   ),
   34 => array (
-    'msg' => _("LSldapObject : L'attribut %{attr_depend} dépendant de l'attribut %{attr} n'existe pas."),
-    'level' => 'w'
+    'msg' => _("LSldapObject : L'attribut %{attr_depend} dépendant de l'attribut %{attr} n'existe pas.")
   ),
   35 => array (
-    'msg' => _("LSldapObject : Erreur durant la suppression de %{objectname}."),
-    'level' => 'c'
+    'msg' => _("LSldapObject : Erreur durant la suppression de %{objectname}.")
   ),
   36 => array (
-    'msg' => _("LSldapObject : Erreur durant les actions avant renomage."),
-    'level' => 'c'
+    'msg' => _("LSldapObject : Erreur durant les actions avant renomage.")
   ),
   37 => array (
-    'msg' => _("LSldapObject : Erreur durant les actions après renomage."),
-    'level' => 'c'
+    'msg' => _("LSldapObject : Erreur durant les actions aprês renomage.")
   ),
   38 => array (
-    'msg' => _("LSldapObject : Erreur durant les actions avant suppression."),
-    'level' => 'c'
+    'msg' => _("LSldapObject : Erreur durant les actions avant suppression.")
   ),
   39 => array (
-    'msg' => _("LSldapObject : Erreur durant les actions après suppresion."),
-    'level' => 'c'
+    'msg' => _("LSldapObject : Erreur durant les actions aprês suppresion.")
   ),
   301 => array (
-    'msg' => _("LSldapObject : Erreur durant les actions après la création. L'objet est pour autant créé."),
-    'level' => 'c'
+    'msg' => _("LSldapObject : Erreur durant les actions aprês la création. L'objet est pour autant créé.")
   ),
   302 => array (
-    'msg' => _("LSldapObject : La fonction %{fonction} devant être éxecutée après la création de l'objet n'existe pas."),
-    'level' => 'c'
+    'msg' => _("LSldapObject : La fonction %{fonction} devant être éxecutée aprês la création de l'objet n'existe pas.")
   ),
   303 => array (
-    'msg' => _("LSldapObject : Erreur durant l'exection de la fonction %{fonction} devant être éxecutée après la création de l'objet."),
-    'level' => 'c'
+    'msg' => _("LSldapObject : Erreur durant l'exection de la fonction %{fonction} devant être éxecutée aprês la création de l'objet.")
   ),
   304 => array (
-    'msg' => _("LSldapObject : La fonction %{fonction} devant être éxecutée après la suppression de l'objet n'existe pas."),
-    'level' => 'c'
+    'msg' => _("LSldapObject : La fonction %{fonction} devant être éxecutée aprês la suppression de l'objet n'existe pas.")
   ),
   305 => array (
-    'msg' => _("LSldapObject : Erreur durant l'exection de la fonction %{fonction} devant être éxecutée après la suppression de l'objet."),
-    'level' => 'c'
+    'msg' => _("LSldapObject : Erreur durant l'exection de la fonction %{fonction} devant être éxecutée aprês la suppression de l'objet.")
+  ),
+  306 => array (
+    'msg' => _("LSldapObject : La fonction %{func} devant être executée après la modification de l'attribut %{attr} n'existe pas.")
+  ),
+  307 => array (
+    'msg' => _("LSldapObject : L'execution de la fonction %{func} devant être executée après la modification de l'attribut %{attr} a échouée.")
+  ),
+  308 => array (
+    'msg' => _("LSldapObject : La fonction %{func} devant être executée avant la modification de l'attribut %{attr} n'existe pas.")
+  ),
+  309 => array (
+    'msg' => _("LSldapObject : L'execution de la fonction %{func} devant être executée avant la modification de l'attribut %{attr} a échouée.")
   ),
   
   // LSattribute
   41 => array (
-    'msg' => _("LSattribute : Attribut %{attr} : Type d'attribut (ldap // html) inconnu (ldap = %{ldap} | html = %{html})."),
-    'level' => 'c'
+    'msg' => _("LSattribute : Attribut %{attr} : Type d'attribut (ldap // html) inconnu (ldap = %{ldap} | html = %{html}).")
   ),
   42 => array (
-    'msg' => _("LSattribute : La fonction %{func} pour afficher l'attribut %{attr} est inconnue."),
-    'level' => 'c'
+    'msg' => _("LSattribute : La fonction %{func} pour afficher l'attribut %{attr} est inconnue.")
   ),
   43 => array (
-    'msg' => _("LSattribute : La règle %{rule} pour valider l'attribut %{attr} est inconnue."),
-    'level' => 'c'
+    'msg' => _("LSattribute : La règle %{rule} pour valider l'attribut %{attr} est inconnue.")
   ),
   44 => array (
-    'msg' => _("LSattribute : Les données de configuration pour vérifié l'attribut %{attr} sont incorrects."),
-    'level' => 'c'
+    'msg' => _("LSattribute : Les données de configuration pour vérifié l'attribut %{attr} sont incorrects.")
   ),
   45 => array (
-    'msg' => _("LSattribute : La fonction %{func} pour sauver l'attribut %{attr} est inconnue."),
-    'level' => 'c'
+    'msg' => _("LSattribute : La fonction %{func} pour sauver l'attribut %{attr} est inconnue.")
   ),
   46 => array (
-    'msg' => _("LSattribute : La valeur de l'attribut %{attr} ne peut pas Ãªtre générée."),
-    'level' => 'c'
+    'msg' => _("LSattribute : La valeur de l'attribut %{attr} ne peut pas être générée.")
   ),
   47 => array (
-    'msg' => _("LSattribute : La valeur de l'attribut %{attr} n'a pas put Ãªtre générée."),
-    'level' => 'c'
+    'msg' => _("LSattribute : La valeur de l'attribut %{attr} n'a pas put être générée.")
   ),
   48 => array (
-    'msg' => _("LSattribute : La génération de l'attribut %{attr} n'a pas retourné une valeur correcte."),
-    'level' => 'c'
+    'msg' => _("LSattribute : La génération de l'attribut %{attr} n'a pas retourné une valeur correcte.")
   ),
 
   // LSattr_html
   101 => array (
-    'msg' => _("LSattr_html : La fonction addToForm() du type html de l'attribut %{attr} n'est pas définie."),
-    'level' => 'c'
+    'msg' => _("LSattr_html : La fonction addToForm() du type html de l'attribut %{attr} n'est pas définie.")
   ),
   102 => array (
-    'msg' => _("LSattr_html_select_list : Des données de configuration sont manquante pour la génération de la liste deroulante de l'attribut %{attr}."),
-    'level' => 'c'
+    'msg' => _("LSattr_html_select_list : Des données de configuration sont manquante pour la génération de la liste deroulante de l'attribut %{attr}.")
   ),
   103 => array (
-    'msg' => _("LSattr_html_%{type} : Les données multiples ne sont pas gérés pour ce type d'attribut."),
-    'level' => 'c'
+    'msg' => _("LSattr_html_%{type} : Les données multiples ne sont pas gérés pour ce type d'attribut.")
   ),
 
   // LSform
   201 => array(
-    'msg' => _("LSform : Erreur durant la recupération des valeurs du formulaire."),
-    'level' => 'c'
+    'msg' => _("LSform : Erreur durant la recupération des valeurs du formulaire.")
   ),
   202 => array(
-    'msg' => _("LSform : Erreur durant la récupération de la valeur du formulaire du champ '%{element}'."),
-    'level' => 'c'
+    'msg' => _("LSform : Erreur durant la récupération de la valeur du formulaire du champ '%{element}'.")
   ),
   203 => array(
-    'msg' => _("LSform : Les données du champ %{element} ne sont pas valides."),
-    'level' => 'c'
+    'msg' => _("LSform : Les données du champ %{element} ne sont pas valides.")
   ),
   204 => array(
-    'msg' => _("LSform : Le champ %{element} n'existe pas."),
-    'level' => 'c'
+    'msg' => _("LSform : Le champ %{element} n'existe pas.")
   ),
   205 => array(
-    'msg' => _("LSfom : Type de champ inconnu (%{type})."),
-    'level' => 'c'
+    'msg' => _("LSfom : Type de champ inconnu (%{type}).")
   ),
   206 => array(
-    'msg' => _("LSform : Erreur durant la création de l'élement '%{element}'."),
-    'level' => 'c'
+    'msg' => _("LSform : Erreur durant la création de l'élement '%{element}'.")
   ),
   207 => array(
-    'msg' => _("LSform : Aucune valeur de rentrée pour le champs '%{element}'."),
-    'level' => 'c'
+    'msg' => _("LSform : Aucune valeur de rentrée pour le champs '%{element}'.")
   ),
 
   801 => array(
-    'msg' => _("LSformRule : Aucune regex n'a Ã©té fournis pour la validation des données."),
-    'level' => 'w'
+    'msg' => _("LSformRule : Aucune regex n'a été fournis pour la validation des données.")
   ),
   
   // functions
   901 => array (
-    'msg' => _("Functions 'getFData' : La methode %{meth} de l'objet %{obj} n'existe pas."),
-    'level' => 'c'
+    'msg' => _("Functions 'getFData' : La methode %{meth} de l'objet %{obj} n'existe pas.")
   ),
 
   // LSsession
   1001 => array (
-    'msg' => _("LSsession : La constante %{const} n'est pas définie."),
-    'level' => 'c'
+    'msg' => _("LSsession : La constante %{const} n'est pas définie.")
   ),
   1002 => array (
-    'msg' => _("LSsession : Le support %{addon} n'est pas assuré. Vérifier la compatibilité du système et la configuration de l'addon"),
-    'level' => 'c'
+    'msg' => _("LSsession : Le support %{addon} n'est pas assuré. Vérifier la compatibilité du système et la configuration de l'addon")
   ),
   1003 => array (
-    'msg' => _("LSsession : Données de configuration du serveur LDAP invalide. Impossible d'établir une connexion."),
-    'level' => 'c'
+    'msg' => _("LSsession : Données de configuration du serveur LDAP invalide. Impossible d'établir une connexion.")
   ),
   1004 => array (
-    'msg' => _("LSsession : Impossible de charger l'objets de type %{type} : type inconnu."),
-    'level' => 'c'
+    'msg' => _("LSsession : Impossible de charger l'objets de type %{type} : type inconnu.")
   ),
   1005 => array (
-    'msg' => _("LSsession : Impossible d'effecture l'authentification : Type d'objet d'authentification inconnu (%{type})."),
-    'level' => 'c'
+    'msg' => _("LSsession : Impossible d'effecture l'authentification : Type d'objet d'authentification inconnu (%{type}).")
   ),
   1006 => array (
-    'msg' => _("LSsession : Identifiant ou mot de passe incorrect."),
-    'level' => 'c'
+    'msg' => _("LSsession : Identifiant ou mot de passe incorrect.")
   ),
   1007 => array (
-    'msg' => _("LSsession : Impossible de vous identifier : Duplication d'authentité."),
-    'level' => 'c'
+    'msg' => _("LSsession : Impossible de vous identifier : Duplication d'authentité.")
   ),
   1008 => array (
-    'msg' => _("LSsession : Impossible d'inclure le moteur de rendu Smarty."),
-    'level' => 'c'
+    'msg' => _("LSsession : Impossible d'inclure le moteur de rendu Smarty.")
   ),
   1009 => array (
-    'msg' => _("LSsession : Impossible de se connecter au Serveur LDAP."),
-    'level' => 'c'
+    'msg' => _("LSsession : Impossible de se connecter au Serveur LDAP.")
   ),
   1010 => array (
-    'msg' => _("LSsession : Impossible de charger la classe des objets d'authentification."),
-    'level' => 'c'
+    'msg' => _("LSsession : Impossible de charger la classe des objets d'authentification.")
   ),
   1011 => array (
-    'msg' => _("LSsession : Vous n'êtes pas authorisé à  effectuer cette action."),
-    'level' => 'c'
+    'msg' => _("LSsession : Vous n'êtes pas authorisé à effectuer cette action.")
   ),
   1012 => array (
-    'msg' => _("LSsession : Des informations sont manquantes pour l'affichage de cette page."),
-    'level' => 'c'
+    'msg' => _("LSsession : Des informations sont manquantes pour l'affichage de cette page.")
   ),
   1013 => array (
-    'msg' => _("LSrelations : La fonction de listage pour la relation %{relation} est inconnu."),
-    'level' => 'c'
+    'msg' => _("LSrelations : La fonction de listage pour la relation %{relation} est inconnu.")
   ),
   1014 => array (
-    'msg' => _("LSrelations : La fonction de mise Ã  jour pour la relation %{relation} est inconnu."),
-    'level' => 'c'
+    'msg' => _("LSrelations : La fonction de mise à jour pour la relation %{relation} est inconnu.")
   ),
   1015 => array (
-    'msg' => _("LSrelations : Une erreur s'est produite durant la mise a jour de la relation %{relation}."),
-    'level' => 'c'
+    'msg' => _("LSrelations : Une erreur s'est produite durant la mise a jour de la relation %{relation}.")
   ),
   1016 => array (
-    'msg' => _("LSrelations : L'objet %{LSobject} de la relation %{relation} est inconnu."),
-    'level' => 'w'
+    'msg' => _("LSrelations : L'objet %{LSobject} de la relation %{relation} est inconnu.")
   ),
   1017 => array (
-    'msg' => _("LSsession : Impossible de cr&eacute;er correctement la liste des niveaux. V&eacute;rifier la configuration."),
-    'level' => 'c'
+    'msg' => _("LSsession : Impossible de créer correctement la liste des niveaux. Vérifier la configuration.")
   ),
   1018 => array (
-    'msg' => _("LSsession : La récupération de mot de passe est désactivée pour ce serveur LDAP."),
-    'level' => 'c'
+    'msg' => _("LSsession : La récupération de mot de passe est désactivée pour ce serveur LDAP.")
   ),
   1019 => array (
-    'msg' => _("LSsession : Des informations sont manquantes pour la récupération de votre mot de passe. Contactez l'administrateur du système."),
-    'level' => 'c'
+    'msg' => _("LSsession : Des informations sont manquantes pour la récupération de votre mot de passe. Contactez l'administrateur du systême.")
   ),
   1020 => array (
-    'msg' => _("LSsession : Erreur durant la récupération de votre mot de passe. Contactez l'administrateur du système."),
-    'level' => 'c'
+    'msg' => _("LSsession : Erreur durant la récupération de votre mot de passe. Contactez l'administrateur du systême.")
   ),
   1021 => array (
-    'msg' => _("LSrelation : Des paramètres sont manquants dans l'invocation des méthodes de manipulations de relations standarts (Méthode : %{meth})."),
-    'level' => 'c'
+    'msg' => _("LSrelation : Des paramètres sont manquants dans l'invocation des méthodes de manipulations de relations standarts (Méthode : %{meth}).")
   )
 );
 ?>
index 082b6f1..c2daa0b 100644 (file)
@@ -25,7 +25,7 @@ $GLOBALS['LSsession'] -> loadLSclass('LSattribute');
 /**
  * Base d'un objet ldap
  *
- * Cette classe définis la base de tout objet ldap géré par LdapSaisie
+ * Cette classe dÃ\83©finis la base de tout objet ldap gÃ\83©rÃ\83© par LdapSaisie
  *
  * @author Benjamin Renard <brenard@easter-eggs.com>
  */
@@ -46,15 +46,15 @@ class LSldapObject {
   /**
    * Constructeur
    *
-   * Cette methode construit l'objet et définis la configuration.
-   * Elle lance la construction du tableau d'attributs représentés par un objet LSattribute.
+   * Cette methode construit l'objet et dÃ\83©finis la configuration.
+   * Elle lance la construction du tableau d'attributs reprÃ\83©sentÃ\83©s par un objet LSattribute.
    *
    * @author Benjamin Renard <brenard@easter-eggs.com>
    *
    * @param[in] $type_name [<b>required</b>] string Le nom du type de l'objet
    * @param[in] $config array La configuration de l'objet
    *
-   * @retval boolean true si l'objet a Ã©té construit, false sinon.
+   * @retval boolean true si l'objet a Ã\83©tÃ\83© construit, false sinon.
    */ 
   function LSldapObject($type_name,$config='auto') {
     $this -> type_name = $type_name;
@@ -77,16 +77,16 @@ class LSldapObject {
   }
   
   /**
-   * Charge les données de l'objet
+   * Charge les donnÃ\83©es de l'objet
    *
-   * Cette methode définis le DN de l'objet et charge les valeurs de attributs de l'objet
-   * à partir de l'annuaire.
+   * Cette methode dÃ\83©finis le DN de l'objet et charge les valeurs de attributs de l'objet
+   * Ã\83  partir de l'annuaire.
    *
    * @author Benjamin Renard <brenard@easter-eggs.com>
    *
    * @param[in] $dn string Le DN de l'objet.
    *
-   * @retval boolean true si la chargement a réussi, false sinon.
+   * @retval boolean true si la chargement a rÃ\83©ussi, false sinon.
    */ 
   function loadData($dn) {
     $this -> dn = $dn;
@@ -102,11 +102,11 @@ class LSldapObject {
   }
   
   /**
-   * Recharge les données de l'objet
+   * Recharge les donnÃ\83©es de l'objet
    *
    * @author Benjamin Renard <brenard@easter-eggs.com>
    *
-   * @retval boolean true si la rechargement a réussi, false sinon.
+   * @retval boolean true si la rechargement a rÃ\83©ussi, false sinon.
    */ 
   function reloadData() {
     $data = $GLOBALS['LSldap'] -> getAttrs($this -> dn);
@@ -132,7 +132,7 @@ class LSldapObject {
    * Retourne la valeur descriptive d'affichage de l'objet
    * 
    * Cette fonction retourne la valeur descriptive d'affichage de l'objet en fonction
-   * du format défini dans la configuration de l'objet ou spécifié en paramètre.
+   * du format dÃ\83©fini dans la configuration de l'objet ou spÃ\83©cifiÃ\83© en paramÃ\83¨tre.
    *
    * @author Benjamin Renard <brenard@easter-eggs.com>
    *
@@ -154,16 +154,16 @@ class LSldapObject {
   }
   
   /**
-   * Chaine formatée
+   * Chaine formatÃ\83©e
    * 
-   * Cette fonction retourne la valeur d'une chaine formatée en prennant les valeurs
+   * Cette fonction retourne la valeur d'une chaine formatÃ\83©e en prennant les valeurs
    * de l'objet.
    *
    * @author Benjamin Renard <brenard@easter-eggs.com>
    *
    * @param[in] $format string Format de la chaine
    *
-   * @retval string Valeur d'une chaine formatée
+   * @retval string Valeur d'une chaine formatÃ\83©e
    */ 
   function getFData($format) {
     $format=getFData($format,$this,'getValue');
@@ -173,15 +173,15 @@ class LSldapObject {
   /**
    * Construit un formulaire de l'objet
    * 
-   * Cette méthode construit un formulaire LSform Ã  partir de la configuration de l'objet
+   * Cette mÃ\83©thode construit un formulaire LSform Ã\83  partir de la configuration de l'objet
    * et de chaque attribut.
    *
-   * @param[in] $idForm [<b>required</b>] Identifiant du formulaire a créer
-   * @param[in] $load DN d'un objet similaire dont la valeur des attribut doit Ãªtre chargé dans le formulaire.
+   * @param[in] $idForm [<b>required</b>] Identifiant du formulaire a crÃ\83©er
+   * @param[in] $load DN d'un objet similaire dont la valeur des attribut doit Ã\83ªtre chargÃ\83© dans le formulaire.
    *
    * @author Benjamin Renard <brenard@easter-eggs.com>
    *
-   * @retval LSform Le formulaire crée
+   * @retval LSform Le formulaire crÃ\83©e
    */ 
   function getForm($idForm,$load=NULL) {
     $GLOBALS['LSsession'] -> loadLSclass('LSform');
@@ -216,15 +216,15 @@ class LSldapObject {
   /**
    * Construit un formulaire de l'objet
    * 
-   * Cette méthode construit un formulaire LSform Ã  partir de la configuration de l'objet
+   * Cette mÃ\83©thode construit un formulaire LSform Ã\83  partir de la configuration de l'objet
    * et de chaque attribut.
    *
-   * @param[in] $idForm [<b>required</b>] Identifiant du formulaire a créer
-   * @param[in] $config Configuration spécifique pour le formulaire
+   * @param[in] $idForm [<b>required</b>] Identifiant du formulaire a crÃ\83©er
+   * @param[in] $config Configuration spÃ\83©cifique pour le formulaire
    *
    * @author Benjamin Renard <brenard@easter-eggs.com>
    *
-   * @retval LSform Le formulaire crée
+   * @retval LSform Le formulaire crÃ\83©e
    */ 
   function getView() {
     $GLOBALS['LSsession'] -> loadLSclass('LSform');
@@ -239,13 +239,13 @@ class LSldapObject {
   /**
    * Rafraichis le formulaire de l'objet
    * 
-   * Cette méthode recharge les données d'un formulaire LSform.
+   * Cette mÃ\83©thode recharge les donnÃ\83©es d'un formulaire LSform.
    *
-   * @param[in] $idForm [<b>required</b>] Identifiant du formulaire a créer
+   * @param[in] $idForm [<b>required</b>] Identifiant du formulaire a crÃ\83©er
    *
    * @author Benjamin Renard <brenard@easter-eggs.com>
    *
-   * @retval boolean true sile formulaire a Ã©té rafraichis, false sinon
+   * @retval boolean true sile formulaire a Ã\83©tÃ\83© rafraichis, false sinon
    */ 
   function refreshForm($idForm) {
     $LSform = $this -> forms[$idForm][0];
@@ -258,15 +258,15 @@ class LSldapObject {
   }
   
   /**
-   * Met Ã  jour les données de l'objet et de l'entré de l'annuaire
+   * Met Ã\83  jour les donnÃ\83©es de l'objet et de l'entrÃ\83© de l'annuaire
    * 
-   * Met Ã  jour les données de l'objet Ã  partir d'un retour d'un formulaire.
+   * Met Ã\83  jour les donnÃ\83©es de l'objet Ã\83  partir d'un retour d'un formulaire.
    *
    * @param[in] $idForm Identifiant du formulaire d'origine
    *
    * @author Benjamin Renard <brenard@easter-eggs.com>
    *
-   * @retval boolean true si la mise Ã  jour a réussi, false sinon
+   * @retval boolean true si la mise Ã\83  jour a rÃ\83©ussi, false sinon
    *
    * @see validateAttrsData()
    * @see submitChange()
@@ -316,8 +316,24 @@ class LSldapObject {
           return;
         }
       }
+      // $this -> attrs[*] => before_modify
+      foreach($new_data as $attr_name => $attr_val) {
+        if(isset($this -> config['attrs'][$attr_name]['before_modify'])) {
+          if(function_exists($this -> config['attrs'][$attr_name]['before_modify'])) {
+            if(!$this -> config['attrs'][$attr_name]['before_modify']($this)) {
+              $GLOBALS['LSerror'] -> addErrorCode(309,array('func' => $this -> config['attrs'][$attr_name]['before_modify'],'attr' => $attr_name));
+              return;
+            }
+          }
+          else {
+            $GLOBALS['LSerror'] -> addErrorCode(308,array('func' => $this -> config['attrs'][$attr_name]['before_modify'],'attr' => $attr_name));
+            return;
+          }
+        }
+      }
+      
       if ($this -> submitChange($idForm)) {
-        LSdebug('Les modifications sont submitées');
+        LSdebug('Les modifications sont submitÃ\83©es');
         $this -> submitError = false;
         $this -> reloadData();
         $this -> refreshForm($idForm);
@@ -337,6 +353,22 @@ class LSldapObject {
           return;
         }
       }
+      
+      // $this -> attrs[*] => After Modify
+      foreach($new_data as $attr_name => $attr_val) {
+        if(isset($this -> config['attrs'][$attr_name]['after_modify'])) {
+          if(function_exists($this -> config['attrs'][$attr_name]['after_modify'])) {
+            if(!$this -> config['attrs'][$attr_name]['after_modify']($this)) {
+              $GLOBALS['LSerror'] -> addErrorCode(307,array('func' => $this -> config['after_modify'],'attr' => $attr_name));
+              return;
+            }
+          }
+          else {
+            $GLOBALS['LSerror'] -> addErrorCode(306,array('func' => $this -> config['after_modify'],'attr' => $attr_name));
+            return;
+          }
+        }
+      }
       return true;
     }
     else {
@@ -345,13 +377,13 @@ class LSldapObject {
   }
   
   /**
-   * Valide les données retournées par un formulaire
+   * Valide les donnÃ\83©es retournÃ\83©es par un formulaire
    *
    * @param[in] $idForm Identifiant du formulaire d'origine
    *
    * @author Benjamin Renard <brenard@easter-eggs.com>
    *
-   * @retval boolean true si les données sont valides, false sinon
+   * @retval boolean true si les donnÃ\83©es sont valides, false sinon
    */ 
   function validateAttrsData($idForm) {
     $LSform=$this -> forms[$idForm][0];
@@ -388,14 +420,14 @@ class LSldapObject {
   }
 
    /**
-   * Valide les données d'un attribut
+   * Valide les donnÃ\83©es d'un attribut
    *
    * @param[in] $LSForm Formulaire d'origine
-   * @param[in] &$attr Attribut à valider
+   * @param[in] &$attr Attribut Ã\83  valider
    *
    * @author Benjamin Renard <brenard@easter-eggs.com>
    *
-   * @retval boolean true si les données sont valides, false sinon
+   * @retval boolean true si les donnÃ\83©es sont valides, false sinon
    */
   function validateAttrData(&$LSform,&$attr) {
     $vconfig=$attr -> getValidateConfig();
@@ -408,12 +440,12 @@ class LSldapObject {
     // Validation des valeurs de l'attribut
     if(is_array($vconfig)) {
       foreach($vconfig as $test) {
-        // Définition du basedn par défaut
+        // DÃ\83©finition du basedn par dÃ\83©faut
         if (!isset($test['basedn'])) {
           $test['basedn']=$GLOBALS['LSsession']->topDn;
         }
 
-        // Définition du message d'erreur
+        // DÃ\83©finition du message d'erreur
         if (!empty($test['msg'])) {
           $msg_error=getFData($test['msg'],$this,'getValue');
         }
@@ -475,7 +507,7 @@ class LSldapObject {
         }
       }
     }
-    // Génération des valeurs des attributs dépendants
+    // GÃ\83©nÃ\83©ration des valeurs des attributs dÃ\83©pendants
     $dependsAttrs=$attr->getDependsAttrs();
     if (!empty($dependsAttrs)) {
       foreach($dependsAttrs as $dependAttr) {
@@ -502,13 +534,13 @@ class LSldapObject {
   }
 
   /**
-   * Met Ã  jour les données modifiés dans l'annuaire
+   * Met Ã\83  jour les donnÃ\83©es modifiÃ\83©s dans l'annuaire
    *
    * @param[in] $idForm Identifiant du formulaire d'origine
    *
    * @author Benjamin Renard <brenard@easter-eggs.com>
    *
-   * @retval boolean true si la mise Ã  jour a réussi, false sinon
+   * @retval boolean true si la mise Ã\83  jour a rÃ\83©ussi, false sinon
    */ 
   function submitChange($idForm) {
     $submitData=array();
@@ -578,8 +610,8 @@ class LSldapObject {
    * @author Benjamin Renard <brenard@easter-eggs.com>
    *
    * @retval array Tableau : 
-   *                  - [0] : le premier paramètre
-   *                  - [1] : les paramètres suivants
+   *                  - [0] : le premier paramÃ\83¨tre
+   *                  - [1] : les paramÃ\83¨tres suivants
    */ 
   function getDnInfos($dn) {
     $infos=ldap_explode_dn($dn,0);
@@ -611,16 +643,16 @@ class LSldapObject {
   }
   
   /**
-   * Retourne une liste d'objet du même type.
+   * Retourne une liste d'objet du mÃ\83ªme type.
    *
-   * Effectue une recherche en fonction des paramètres passé et retourne un
+   * Effectue une recherche en fonction des paramÃ\83¨tres passÃ\83© et retourne un
    * tableau d'objet correspond au resultat de la recherche.
    *
    * @author Benjamin Renard <brenard@easter-eggs.com>
    *
    * @param[in] $filter array (ou string) Filtre de recherche Ldap / Tableau de filtres de recherche
    * @param[in] $basedn string DN de base pour la recherche
-   * @param[in] $params array Paramètres de recherche au format Net_LDAP2::search()
+   * @param[in] $params array ParamÃ\83¨tres de recherche au format Net_LDAP2::search()
    *
    * @retval array Tableau d'objets correspondant au resultat de la recherche
    */ 
@@ -636,22 +668,22 @@ class LSldapObject {
 
     for($i=0;$i<$nbFilter;$i++) {
       $new_attrs=array();
-      // Défintion des paramètres de base pour la recherche
+      // DÃ\83©fintion des paramÃ\83¨tres de base pour la recherche
       $sbasedn=$basedn;
       $sparams=$params;
       $ret=array();
       if (isset($filter[$i]['scope']))
         $sparams["scope"]=$filter[$i]['scope'];
       
-      // Definition des critères de recherche correspondant au type d'objet Ã  lister
+      // Definition des critÃ\83¨res de recherche correspondant au type d'objet Ã\83  lister
       if(($nbFilter==1)||(!isset($filter[$i]['attr']))) {
-        // Filtre sur l'objet souhaité
+        // Filtre sur l'objet souhaitÃ\83©
         $sfilter='(&';
         $sfilter.=$this -> getObjectFilter();
         $sfilter_end=')';
         $check_final_dn=true;
       }
-      // Initialisation des critères d'une recherche intermédiaire
+      // Initialisation des critÃ\83¨res d'une recherche intermÃ\83©diaire
       else {
         if(isset($filter[$i]['object_type'])) {
           $obj_tmp=new $filter[$i]['object_type']();
@@ -670,17 +702,17 @@ class LSldapObject {
           $sbasedn=$filter[$i]['basedn'];
         }
       }
-      // Dans le cas d'une recherche intermédiaire ou finale
+      // Dans le cas d'une recherche intermÃ\83©diaire ou finale
       if($attrs!=false) {
         // Initialisation des variables
         $ret_gen=array();
         $new_attrs=array();
         
-        // Pour tout les attributs retournés
+        // Pour tout les attributs retournÃ\83©s
         for($ii=0;$ii<count($attrs);$ii++) {
           $sfilter_for='';
-          // Définition du filtre de recherche Ã  partir des paramètres utilisateurs et
-          // des paramètres de recherche de l'objet Ã  listé (dans le cas d'une recherche finale
+          // DÃ\83©finition du filtre de recherche Ã\83  partir des paramÃ\83¨tres utilisateurs et
+          // des paramÃ\83¨tres de recherche de l'objet Ã\83  listÃ\83© (dans le cas d'une recherche finale
           if((isset($filter[$i]['filter']))&&(!empty($filter[$i]['filter']))) {
             $sfilter_user=getFData($filter[$i]['filter'],$attrs[$ii]);
             if($sfilter_user[0]=='(')
@@ -697,7 +729,7 @@ class LSldapObject {
             if ((!$this -> isCompatibleDNs($sbasedn,$basedn))&&($check_final_dn)) continue;
           }
         
-          // Vérification de la compatibilité du basedn de la recherche et du basedn générale
+          // VÃ\83©rification de la compatibilitÃ\83© du basedn de la recherche et du basedn gÃ\83©nÃ\83©rale
           // Finalisation du filtre
           $sfilter_for.=$sfilter_end;
         
@@ -707,7 +739,7 @@ class LSldapObject {
           
           // Si il y un retour
           if(isset($ret[0])) {
-            // si il ya une suite (recherche intermédiaire)
+            // si il ya une suite (recherche intermÃ\83©diaire)
             if($filter[$i]['attr']){
               for($iii=0;$iii<count($ret);$iii++) {
                 if(isset($ret[$iii]['attrs'][$filter[$i]['attr']])) {
@@ -725,7 +757,7 @@ class LSldapObject {
               }
             }
             else {
-              // vérification de la compatibilité de la compatibilité du DN resultant
+              // vÃ\83©rification de la compatibilitÃ\83© de la compatibilitÃ\83© du DN resultant
               // et du basedn de recherche 
               if (!$this -> isCompatibleDNs($ret[0]['dn'],$basedn))
                 continue;
@@ -740,9 +772,9 @@ class LSldapObject {
           $ret=$ret_gen;
           break;
         }
-        // dans le cas d'une suite prévu mais d'un retour nul de la précédente recherche
+        // dans le cas d'une suite prÃ\83©vu mais d'un retour nul de la prÃ\83©cÃ\83©dente recherche
         else if(empty($new_attrs)) {
-            // retour vide et arrêt de la recherche
+            // retour vide et arrÃ\83ªt de la recherche
             $ret=array();
             break;
         }
@@ -752,7 +784,7 @@ class LSldapObject {
       }
       // Dans le cas de la recherche initiale
       else {
-        // Déclaration du filtre de recherche
+        // DÃ\83©claration du filtre de recherche
         if((isset($filter[$i]['filter']))&&(!empty($filter[$i]['filter']))) {
           if($filter[$i]['filter'][0]=='(') {
             $sfilter.=$filter[$i]['filter'];
@@ -767,7 +799,7 @@ class LSldapObject {
         // Lancement de la recherche
         $ret=$GLOBALS['LSldap'] -> search ($sfilter,$sbasedn,$sparams);
         
-        //Si filtre multiple => on recupère une liste d'attributs
+        //Si filtre multiple => on recupÃ\83¨re une liste d'attributs
         if(isset($filter[$i]['attr'])) {
           for($ii=0;$ii<count($ret);$ii++) {
             if(isset($ret[$ii]['attrs'][$filter[$i]['attr']])) {
@@ -784,16 +816,16 @@ class LSldapObject {
             }
           }
           
-          // Si aucunne valeur n'est retournées
+          // Si aucunne valeur n'est retournÃ\83©es
           if(empty($attrs)){
-            // arrêt et retour Ã  zéro
+            // arrÃ\83ªt et retour Ã\83  zÃ\83©ro
             $ret=array();
             break;
           }
         }
         // Si recherche unique
         else {
-          // préparation du retour finale
+          // prÃ\83©paration du retour finale
           if (is_array($ret)) {
             $ret_final=array();
             foreach($ret as $obj)
@@ -808,7 +840,7 @@ class LSldapObject {
       }
     }
     
-    // Création d'un tableau d'objet correspondant au valeur retourné
+    // CrÃ\83©ation d'un tableau d'objet correspondant au valeur retournÃ\83©
     for($i=0;$i<count($ret);$i++) {
       $retInfos[$i] = new $this -> type_name($this -> config);
       $retInfos[$i] -> loadData($ret[$i]);
@@ -819,7 +851,7 @@ class LSldapObject {
  
  
   /**
-   * Recherche un objet à partir de la valeur exact de son RDN
+   * Recherche un objet à partir de la valeur exact de son RDN
    * 
    * @author Benjamin Renard <brenard@easter-eggs.com>
    * 
@@ -836,7 +868,7 @@ class LSldapObject {
   /**
    * Retourne une valeur de l'objet
    *
-   * Retourne une valeur en fonction du paramètre. Si la valeur est inconnue, la valeur retourné est ' '.
+   * Retourne une valeur en fonction du paramÃ\83¨tre. Si la valeur est inconnue, la valeur retournÃ\83© est ' '.
    * tableau d'objet correspond au resultat de la recherche.
    *
    * Valeurs possibles :
@@ -846,9 +878,9 @@ class LSldapObject {
    *
    * @author Benjamin Renard <brenard@easter-eggs.com>
    *
-   * @param[in] $val string Le nom de la valeur demandée
+   * @param[in] $val string Le nom de la valeur demandÃ\83©e
    *
-   * @retval mixed la valeur demandé ou ' ' si celle-ci est inconnue.
+   * @retval mixed la valeur demandÃ\83© ou ' ' si celle-ci est inconnue.
    */ 
   function getValue($val) {
     if(($val=='dn')||($val=='%{dn}')) {
@@ -878,7 +910,7 @@ class LSldapObject {
   }
 
   /**
-   * Retourn un tableau pour un select d'un objet du même type
+   * Retourn un tableau pour un select d'un objet du mÃ\83ªme type
    * 
    * @author Benjamin Renard <brenard@easter-eggs.com>
    *
@@ -896,7 +928,7 @@ class LSldapObject {
   /**
    * Retourne le DN de l'objet
    *
-   * Cette methode retourne le DN de l'objet. Si celui-ci n'existe pas, il le construit à partir de la 
+   * Cette methode retourne le DN de l'objet. Si celui-ci n'existe pas, il le construit Ã\83  partir de la 
    * configuration de l'objet et la valeur de son attribut rdn.
    *
    * @author Benjamin Renard <brenard@easter-eggs.com>
@@ -938,11 +970,11 @@ class LSldapObject {
   }
   
   /**
-   * Retourne qui est l'utilisateur par rapport à cet object
+   * Retourne qui est l'utilisateur par rapport Ã\83  cet object
    *
    * @author Benjamin Renard <brenard@easter-eggs.com>
    * 
-   * @retval string 'admin'/'self'/'user' pour Admin , l'utilisateur lui même ou un simple utilisateur
+   * @retval string 'admin'/'self'/'user' pour Admin , l'utilisateur lui mÃ\83ªme ou un simple utilisateur
    */
   function whoami() {
     if (!$this -> _whoami)
@@ -967,7 +999,7 @@ class LSldapObject {
    *
    * @author Benjamin Renard <brenard@easter-eggs.com>
    * 
-   * @retval boolean True si l'objet Ã  Ã©té supprimé, false sinon
+   * @retval boolean True si l'objet Ã\83  Ã\83©tÃ\83© supprimÃ\83©, false sinon
    */
   function remove() {
     if ($this -> beforeDelete()) {
@@ -1028,10 +1060,10 @@ class LSldapObject {
   }
   
   /**
-   * Methode créant la liste des objets en relations avec l'objet courant et qui
+   * Methode créant la liste des objets en relations avec l'objet courant et qui
    * la met en cache ($this -> _relationsCache)
    * 
-   * @retval True en cas de cas ce succès, False sinon.
+   * @retval True en cas de cas ce succès, False sinon.
    */
   function updateRelationsCache() {
     $this -> _relationsCache=array();
@@ -1055,12 +1087,12 @@ class LSldapObject {
                 );
               }
               else {
-                LSdebug('Problème durant la mise en cache de la relation '.$relation_name);
+                LSdebug('Problème durant la mise en cache de la relation '.$relation_name);
                 return;
               }
             }
             else {
-              LSdebug('Les méthodes de mise en cache de la relation '.$relation_name. ' ne sont pas toutes disponibles.');
+              LSdebug('Les méthodes de mise en cache de la relation '.$relation_name. ' ne sont pas toutes disponibles.');
               return;
             }
           }
@@ -1075,29 +1107,29 @@ class LSldapObject {
   }
   
   /**
-   * Methode executant les actions nécéssaires avant le changement du DN de
+   * Methode executant les actions nécéssaires avant le changement du DN de
    * l'objet.
    * 
-   * Cette méthode n'est qu'un exemple et elle doit être certainement réécrite
+   * Cette méthode n'est qu'un exemple et elle doit être certainement réécrite
    * pour les objets plus complexe.
    * 
-   * @retval True en cas de cas ce succès, False sinon.
+   * @retval True en cas de cas ce succès, False sinon.
    */
   function beforeRename() {
     return $this -> updateRelationsCache();
   }
   
   /**
-   * Methode executant les actions nécéssaires après le changement du DN de
+   * Methode executant les actions nécéssaires après le changement du DN de
    * l'objet.
    * 
-   * Cette méthode n'est qu'un exemple et elle doit être certainement réécrite
+   * Cette méthode n'est qu'un exemple et elle doit être certainement réécrite
    * pour les objets plus complexe.
    * 
    * @param[in] $oldDn string L'ancien DN de l'objet
    * @param[in] $newDn string Le nouveau DN de l'objet
    * 
-   * @retval True en cas de cas ce succès, False sinon.
+   * @retval True en cas de cas ce succès, False sinon.
    */
   function afterRename($oldDn,$newDn) {
     $error = 0;
@@ -1124,26 +1156,26 @@ class LSldapObject {
   }
   
   /**
-   * Methode executant les actions nécéssaires avant la suppression de
+   * Methode executant les actions nécéssaires avant la suppression de
    * l'objet.
    * 
-   * Cette méthode n'est qu'un exemple et elle doit être certainement réécrite
+   * Cette méthode n'est qu'un exemple et elle doit être certainement réécrite
    * pour les objets plus complexe.
    * 
-   * @retval True en cas de cas ce succès, False sinon.
+   * @retval True en cas de cas ce succès, False sinon.
    */
   function beforeDelete() {
     return $this -> updateRelationsCache();
   }
   
   /**
-   * Methode executant les actions nécéssaires après la suppression de
+   * Methode executant les actions nécéssaires après la suppression de
    * l'objet.
    * 
-   * Cette méthode n'est qu'un exemple et elle doit être certainement réécrite
+   * Cette méthode n'est qu'un exemple et elle doit être certainement réécrite
    * pour les objets plus complexe.
    * 
-   * @retval True en cas de cas ce succès, False sinon.
+   * @retval True en cas de cas ce succès, False sinon.
    */
   function afterDelete() {
     $error = 0;
@@ -1188,13 +1220,13 @@ class LSldapObject {
   }
   
   /**
-   * Methode executant les actions nécéssaires après la création de
+   * Methode executant les actions nécéssaires après la création de
    * l'objet.
    * 
-   * Cette méthode n'est qu'un exemple et elle doit être certainement réécrite
+   * Cette méthode n'est qu'un exemple et elle doit être certainement réécrite
    * pour les objets plus complexe.
    * 
-   * @retval True en cas de cas ce succès, False sinon.
+   * @retval True en cas de cas ce succès, False sinon.
    */
   function afterCreate() {
     LSdebug('after');
@@ -1206,7 +1238,7 @@ class LSldapObject {
             if (isset($GLOBALS['LSobjects'][$type]['container_auto_create'])&&isset($GLOBALS['LSobjects'][$type]['container_dn'])) {
               $dn = $GLOBALS['LSobjects'][$type]['container_dn'].','.$this -> getDn();
               if(!$GLOBALS['LSldap'] -> getNewEntry($dn,$GLOBALS['LSobjects'][$type]['container_auto_create']['objectclass'],$GLOBALS['LSobjects'][$type]['container_auto_create']['attrs'],true)) {
-                LSdebug("Impossible de créer l'entrée fille : ".print_r(
+                LSdebug("Impossible de créer l'entrée fille : ".print_r(
                   array(
                     'dn' => $dn,
                     'objectClass' => $GLOBALS['LSobjects'][$type]['container_auto_create']['objectclass'],
@@ -1277,12 +1309,12 @@ class LSldapObject {
   }
   
   /**
-   * Retourne la liste des relations pour l'objet en fonction de sa présence 
+   * Retourne la liste des relations pour l'objet en fonction de sa présence 
    * dans un des attributs
    * 
-   * Retourne un tableau de d'objet (type : $objectType) correspondant à la 
+   * Retourne un tableau de d'objet (type : $objectType) correspondant à la 
    * relation entre l'objet $object et les objets de type $objectType. Cette relation
-   * est établis par la présence de la valeur de référence à l'objet dans 
+   * est établis par la présence de la valeur de référence à l'objet dans 
    * l'attribut des objets de type $objectType.
    * 
    * @param[in] $object Un object de type $objectType
@@ -1317,14 +1349,14 @@ class LSldapObject {
   /**
    * Ajoute un objet en relation dans l'attribut $attr de $this
    * 
-   * @param[in] $object Un objet de type $objectType à ajouter
-   * @param[in] $attr L'attribut dans lequel l'objet doit être ajouté
+   * @param[in] $object Un objet de type $objectType à ajouter
+   * @param[in] $attr L'attribut dans lequel l'objet doit être ajouté
    * @param[in] $objectType Le type d'objet en relation
    * @param[in] $attrValue La valeur que doit avoir l'attribut :
    *                      - soit le dn (par defaut)
    *                      - soit la valeur [0] d'un attribut
    * 
-   * @retval boolean true si l'objet à été ajouté, False sinon
+   * @retval boolean true si l'objet à été ajouté, False sinon
    **/  
   function addOneObjectInRelation($object,$attr,$objectType,$attrValue='dn') {
     if ((!$attr)||(!$objectType)) {
@@ -1367,14 +1399,14 @@ class LSldapObject {
   /**
    * Supprime un objet en relation dans l'attribut $attr de $this
    * 
-   * @param[in] $object Un objet de type $objectType à supprimer
-   * @param[in] $attr L'attribut dans lequel l'objet doit être supprimé
+   * @param[in] $object Un objet de type $objectType à supprimer
+   * @param[in] $attr L'attribut dans lequel l'objet doit être supprimé
    * @param[in] $objectType Le type d'objet en relation
    * @param[in] $attrValue La valeur que doit avoir l'attribut :
    *                      - soit le dn (par defaut)
    *                      - soit la valeur [0] d'un attribut
    * 
-   * @retval boolean true si l'objet à été supprimé, False sinon
+   * @retval boolean true si l'objet à été supprimé, False sinon
    **/  
   function deleteOneObjectInRelation($object,$attr,$objectType,$attrValue='dn') {
     if ((!$attr)||(!$objectType)) {
@@ -1411,15 +1443,15 @@ class LSldapObject {
  /**
   * Renome un objet en relation dans l'attribut $attr de $this
   * 
-  * @param[in] $object Un objet de type $objectType à renomer
-  * @param[in] $oldValue string L'ancienne valeur faisant référence à l'objet
-  * @param[in] $attr L'attribut dans lequel l'objet doit être supprimé
+  * @param[in] $object Un objet de type $objectType à renomer
+  * @param[in] $oldValue string L'ancienne valeur faisant référence à l'objet
+  * @param[in] $attr L'attribut dans lequel l'objet doit être supprimé
   * @param[in] $objectType Le type d'objet en relation
   * @param[in] $attrValue La valeur que doit avoir l'attribut :
   *                      - soit le dn (par defaut)
   *                      - soit la valeur [0] d'un attribut
   *  
-  * @retval boolean True en cas de succès, False sinon
+  * @retval boolean True en cas de succès, False sinon
   */
   function renameOneObjectInRelation($object,$oldValue,$attr,$objectType,$attrValue='dn') {
     if ((!$attr)||(!$objectType)) {
@@ -1457,7 +1489,7 @@ class LSldapObject {
   }
   
   /**
-   * Met à jour les objets du meme type que $this en relation avec l'objet $object
+   * Met à jour les objets du meme type que $this en relation avec l'objet $object
    * de type $objectType en modifiant la valeur de leur attribut $attr des objets
    * en relation
    * 
@@ -1469,7 +1501,7 @@ class LSldapObject {
    *                      - soit le dn (par defaut)
    *                      - soit la valeur [0] d'un attribut
    * 
-   * @retval boolean true si tout c'est bien passé, False sinon
+   * @retval boolean true si tout c'est bien passé, False sinon
    **/  
   function updateObjectsInRelation($object,$listDns,$attr,$objectType,$attrValue='dn') {
     if ((!$attr)||(!$objectType)) {