From a6d0f7d1263f55d1707e02cf34f025dd5b3708ac Mon Sep 17 00:00:00 2001 From: Benjamin Renard Date: Mon, 3 Jul 2023 12:34:14 +0200 Subject: [PATCH] import: Check generated field value and stop import in case of error --- doc/conf/LSobject/ioFormat.docbook | 3 +- src/includes/class/class.LSio.php | 8 + src/includes/class/class.LSioFormatDriver.php | 18 +- src/lang/fr_FR.UTF8/LC_MESSAGES/ldapsaisie.mo | Bin 91389 -> 91801 bytes src/lang/fr_FR.UTF8/LC_MESSAGES/ldapsaisie.po | 216 +++++++++-------- src/lang/ldapsaisie.pot | 220 +++++++++--------- 6 files changed, 254 insertions(+), 211 deletions(-) diff --git a/doc/conf/LSobject/ioFormat.docbook b/doc/conf/LSobject/ioFormat.docbook index f85a0bf6..8757a52f 100644 --- a/doc/conf/LSobject/ioFormat.docbook +++ b/doc/conf/LSobject/ioFormat.docbook @@ -97,7 +97,8 @@ création du type d'&LSobject;. En conséquence : &LSformat;, ils seront composés à l'aide des valeurs des autres attributs de l'objet. En cas d'un callable, il sera appeler avec en paramètre le tableau des valeurs des autres attributs ($attrs), le tableau des données issues du fichier source - ($row) et devra retourner le tableau des valeurs générées de l'attribut. + ($row) et devra retourner le tableau des valeurs générées de l'attribut ou + false en cas d'erreur. diff --git a/src/includes/class/class.LSio.php b/src/includes/class/class.LSio.php index 0c010103..cda8de4e 100644 --- a/src/includes/class/class.LSio.php +++ b/src/includes/class/class.LSio.php @@ -225,6 +225,11 @@ class LSio extends LSlog_staticLoggerClass { // Retrieve object from ioFormat $objectsData = $ioFormat -> getAll(); + if (LSerror :: errorsDefined()) { + LSerror :: addErrorCode('LSio_10'); + return $return; + } + $objectsInError = array(); self :: log_trace("import(): objects data=".varDump($objectsData)); @@ -848,6 +853,9 @@ ___("LSio: An error occured running before import hooks. Stop the import.") LSerror :: defineError('LSio_09', ___("LSio: An error occured running after import hooks.") ); +LSerror :: defineError('LSio_10', +___("LSio: Error occured loading objects's data from input file.") +); // Defined CLI commands functions only on CLI context if (php_sapi_name() != 'cli') diff --git a/src/includes/class/class.LSioFormatDriver.php b/src/includes/class/class.LSioFormatDriver.php index bba29e73..f2992694 100644 --- a/src/includes/class/class.LSioFormatDriver.php +++ b/src/includes/class/class.LSioFormatDriver.php @@ -128,7 +128,7 @@ class LSioFormatDriver extends LSlog_staticLoggerClass { $all = $this -> getAll(); if (!is_array($all)) return False; $retall = array(); - foreach($all as $one) { + foreach($all as $idx => $one) { $retone = array(); foreach($fields as $key => $attr) { if (!isset($one[$key])) continue; @@ -138,9 +138,15 @@ class LSioFormatDriver extends LSlog_staticLoggerClass { foreach ($generated_fields as $attr => $formats) { $retone[$attr] = array(); if (is_callable($formats)) { - $retone[$attr] = ensureIsArray( - call_user_func_array($formats, array($retone, $one)) - ); + $retone[$attr] = call_user_func_array($formats, array($retone, $one)); + if ($retone[$attr] === false) { + LSerror :: addErrorCode( + 'LSioFormatDriver_01', + array('attr' => $attr, 'object' => (is_int($idx)?"#$idx":"'$idx'")) + ); + continue 2; + } + $retone[$attr] = ensureIsArray($retone[$attr]); } else { foreach (ensureIsArray($formats) as $format) { @@ -186,3 +192,7 @@ class LSioFormatDriver extends LSlog_staticLoggerClass { } } + +LSerror :: defineError('LSioFormatDriver_01', +___("LSioFormatDriver : Fail to generate the value of the attribute %{attr} of the object %{object}.") +); diff --git a/src/lang/fr_FR.UTF8/LC_MESSAGES/ldapsaisie.mo b/src/lang/fr_FR.UTF8/LC_MESSAGES/ldapsaisie.mo index f29b5743ada3c0eec54c9c57891ed65921e3011f..cc8000416ee7eeb0c049c12ff9c823f3c7dd8b29 100644 GIT binary patch delta 15269 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 c4srP{s}}0Y`2YX_ delta 15027 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 diff --git a/src/lang/fr_FR.UTF8/LC_MESSAGES/ldapsaisie.po b/src/lang/fr_FR.UTF8/LC_MESSAGES/ldapsaisie.po index 83af7c75..6e0a15f5 100644 --- a/src/lang/fr_FR.UTF8/LC_MESSAGES/ldapsaisie.po +++ b/src/lang/fr_FR.UTF8/LC_MESSAGES/ldapsaisie.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: LdapSaisie\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2023-05-26 11:30+0200\n" +"PO-Revision-Date: 2023-07-03 12:30+0200\n" "Last-Translator: Benjamin Renard \n" "Language-Team: LdapSaisie \n" @@ -16,10 +16,10 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Poedit-SourceCharset: utf-8\n" "X-Poedit-Basepath: .\n" -"X-Generator: Poedit 2.4.2\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Poedit 3.2.2\n" #: includes/addons/LSaddons.ppolicy.php:26 msgid "Password policy Support : The constant %{const} is not defined." @@ -355,11 +355,11 @@ msgid "" "Organizational Chart Support : The global variable %{var} is not defined." msgstr "Support Organigramme : La variable globale %{var} n'est pas définie." -#: includes/addons/LSaddons.orgchart.php:67 +#: includes/addons/LSaddons.orgchart.php:68 msgid "Organizational chart" msgstr "Organigramme" -#: includes/addons/LSaddons.orgchart.php:75 +#: includes/addons/LSaddons.orgchart.php:76 msgid "Organizational chart data" msgstr "Données de l'organigramme" @@ -435,7 +435,7 @@ msgid "Show LdapSaisie modifications" msgstr "Voir les modifications d'LdapSaisie" #: includes/addons/LSaddons.accesslog.php:244 -#: includes/class/class.LSsession.php:1870 includes/routes.php:157 +#: includes/class/class.LSsession.php:1875 includes/routes.php:157 #: includes/routes.php:474 templates/default/select.tpl:29 msgid "Refresh" msgstr "Rafraîchir" @@ -752,95 +752,101 @@ msgstr "Valeur invalide" msgid "LSformRule_%{type}: Parameter %{param} is not found." msgstr "LSformRule_%{type} : Le paramètre %{param} n'est pas défini." -#: includes/class/class.LSio.php:334 +#: includes/class/class.LSio.php:339 msgid "Failed to set post data on creation form." msgstr "Impossible de définir les données dans le formulaire de création." -#: includes/class/class.LSio.php:340 +#: includes/class/class.LSio.php:345 msgid "Error validating creation form." msgstr "Une erreur est survenue en validant le formulaire de création." -#: includes/class/class.LSio.php:345 +#: includes/class/class.LSio.php:350 msgid "Failed to validate object data." msgstr "Impossible de valider les données de l'objet." -#: includes/class/class.LSio.php:352 +#: includes/class/class.LSio.php:357 msgid "Failed to generate DN for this object." msgstr "Impossible de générer le DN de cet objet." -#: includes/class/class.LSio.php:371 +#: includes/class/class.LSio.php:376 msgid "Error creating object on LDAP server." msgstr "" "Une erreur est survenue durant la création de cet objet dans l'annuaire LDAP." -#: includes/class/class.LSio.php:377 +#: includes/class/class.LSio.php:382 msgid "An object already exist on LDAP server with DN %{dn}." msgstr "Un objet existe déjà dans l'annuaire LDAP avec le DN %{dn}." -#: includes/class/class.LSio.php:389 +#: includes/class/class.LSio.php:394 msgid "" "Failed to load existing object %{dn} from LDAP server. Can't update object." msgstr "" "Impossible de charger l'objet existant %{dn} depuis l'annuaire LDAP. " "Impossible de mettre à jour cet objet." -#: includes/class/class.LSio.php:398 +#: includes/class/class.LSio.php:403 msgid "Failed to set post data on update form." msgstr "Impossible de définir les données dans le formulaire de mise à jour." -#: includes/class/class.LSio.php:404 +#: includes/class/class.LSio.php:409 msgid "Error validating update form." msgstr "Une erreur est survenue en validant le formulaire de mise à jour." -#: includes/class/class.LSio.php:419 +#: includes/class/class.LSio.php:424 msgid "Error updating object on LDAP server." msgstr "" "Une erreur est survenue en mettant à jour cet objet dans l'annuaire LDAP." -#: includes/class/class.LSio.php:825 +#: includes/class/class.LSio.php:830 msgid "LSio: Post data not found or not completed." msgstr "LSio : les données transmises sont introuvables ou incomplètes." -#: includes/class/class.LSio.php:828 +#: includes/class/class.LSio.php:833 msgid "LSio: object type invalid." msgstr "LSio : type d'objet invalide." -#: includes/class/class.LSio.php:831 +#: includes/class/class.LSio.php:836 msgid "LSio: input/output format %{format} invalid." msgstr "LSio : Le format d'entrée/sortie %{format} est invalide." -#: includes/class/class.LSio.php:834 +#: includes/class/class.LSio.php:839 msgid "LSio: Fail to initialize input/output driver." msgstr "LSio : Impossible d'initialiser le pilote d'entrée/sortie." -#: includes/class/class.LSio.php:837 +#: includes/class/class.LSio.php:842 msgid "LSio: Fail to load objects's data from input file." msgstr "" "LSio: Impossible de charger les données des objets depuis le fichier " "d'import." -#: includes/class/class.LSio.php:840 +#: includes/class/class.LSio.php:845 msgid "LSio: Fail to load objects's data to export from LDAP directory." msgstr "" "LSio: Impossible de charger les données des objets à exporter depuis " "l'annuaire LDAP." -#: includes/class/class.LSio.php:843 +#: includes/class/class.LSio.php:848 msgid "LSio: Fail to export objects's data." msgstr "LSio: Impossible d'exporter les données des objets." -#: includes/class/class.LSio.php:846 +#: includes/class/class.LSio.php:851 msgid "LSio: An error occured running before import hooks. Stop the import." msgstr "" "LSio : Une erreur est survenue durant l'exécution des déclencheurs d'avant " "import. Arrêt de l'import." -#: includes/class/class.LSio.php:849 +#: includes/class/class.LSio.php:854 msgid "LSio: An error occured running after import hooks." msgstr "" "LSio : Une erreur est survenue durant l'exécution des déclencheurs d'après " "import." +#: includes/class/class.LSio.php:857 +msgid "LSio: Error occured loading objects's data from input file." +msgstr "" +"LSio: Une erreur est survenue en chargeant les données des objets depuis le " +"fichier d'import." + #: includes/class/class.LSformElement_supannRessourceEtatDate.php:61 msgid "Start date" msgstr "Date de début" @@ -983,6 +989,14 @@ msgstr "Affichier la clé en entier." msgid "Unknown type" msgstr "Type inconnu" +#: includes/class/class.LSioFormatDriver.php:197 +msgid "" +"LSioFormatDriver : Fail to generate the value of the attribute %{attr} of " +"the object %{object}." +msgstr "" +"LSioFormatDriver : Impossible de générer la valeur de l'attribut %{attr} de " +"l'objet %{object}." + #: includes/class/class.LSformElement_valueWithUnit.php:243 msgid "" "LSformElement_valueWithUnit : Units configuration data are missing for the " @@ -1525,40 +1539,40 @@ msgstr "" msgid "Clear" msgstr "Nettoyer" -#: includes/class/class.LSsession.php:1655 +#: includes/class/class.LSsession.php:1660 msgid "Connection" msgstr "Connexion" -#: includes/class/class.LSsession.php:1675 +#: includes/class/class.LSsession.php:1680 msgid "Recovery of your credentials" msgstr "Récupération de votre mot de passe" -#: includes/class/class.LSsession.php:1684 +#: includes/class/class.LSsession.php:1689 msgid "Please fill the identifier field to proceed recovery procedure" msgstr "" "Merci d'entrer votre identifiant pour poursuivre la procédure de récupération" -#: includes/class/class.LSsession.php:1689 +#: includes/class/class.LSsession.php:1694 msgid "" "An email has been sent to %{mail}. Please follow the instructions on it." msgstr "" "Un e-mail vient de vous être envoyé à l'adresse %{mail}. Merci de suivre les " "indications qu'il contient." -#: includes/class/class.LSsession.php:1698 +#: includes/class/class.LSsession.php:1703 msgid "Your new password has been sent to %{mail}." msgstr "Votre nouveau mot de passe vous a été envoyé à l'adresse %{mail}." -#: includes/class/class.LSsession.php:2960 templates/default/select.tpl:20 +#: includes/class/class.LSsession.php:2965 templates/default/select.tpl:20 #: templates/default/recoverpassword.tpl:17 templates/default/login.tpl:16 msgid "Level" msgstr "Niveau" -#: includes/class/class.LSsession.php:3128 +#: includes/class/class.LSsession.php:3133 msgid "LSsession : The constant '%{const}' is not defined." msgstr "LSsession : La constante '%{const}' n'est pas définie." -#: includes/class/class.LSsession.php:3131 +#: includes/class/class.LSsession.php:3136 msgid "" "LSsession : The addon '%{addon}' support is uncertain. Verify system " "compatibility and the add-on configuration." @@ -1566,53 +1580,53 @@ msgstr "" "LSsession : Le support de l'addon '%{addon}' est incertain. Vérifiez la " "compatibilité du système et la configuration de l'add-on." -#: includes/class/class.LSsession.php:3134 +#: includes/class/class.LSsession.php:3139 msgid "" "LSsession : LDAP server's configuration data are invalid. Can't connect." msgstr "" "LSsession : Les données de configuration du serveur LDAP sont invalide. " "Impossible de s'y connecter." -#: includes/class/class.LSsession.php:3137 +#: includes/class/class.LSsession.php:3142 msgid "LSsession : Failed to load LSobject type '%{type}' : unknon type." msgstr "" "LSsession : Impossible de charger le type d'LSobject '%{type}' : type " "inconnu." -#: includes/class/class.LSsession.php:3140 +#: includes/class/class.LSsession.php:3145 msgid "LSsession : Failed to load LSclass '%{class}'." msgstr "LSsession : Impossible de charger la LSclass '%{class}'." -#: includes/class/class.LSsession.php:3143 +#: includes/class/class.LSsession.php:3148 msgid "LSsession : Login or password incorrect." msgstr "LSsession : Identifiant ou mot de passe incorrects." -#: includes/class/class.LSsession.php:3146 +#: includes/class/class.LSsession.php:3151 msgid "LSsession : Impossible to identify you : Duplication of identities." msgstr "LSsession : Impossible de vous identifier : Duplication d'identité." -#: includes/class/class.LSsession.php:3149 +#: includes/class/class.LSsession.php:3154 msgid "LSsession : Can't load class of authentification (%{class})." msgstr "" "LSsession : Impossible de charger la classe d'authentification (%{class})." -#: includes/class/class.LSsession.php:3152 +#: includes/class/class.LSsession.php:3157 msgid "LSsession : Can't connect to LDAP server." msgstr "LSsession : Impossible de se connecter au serveur LDAP." -#: includes/class/class.LSsession.php:3155 +#: includes/class/class.LSsession.php:3160 msgid "LSsession : Impossible to authenticate you." msgstr "LSsession : Impossible de vous identifier." -#: includes/class/class.LSsession.php:3158 +#: includes/class/class.LSsession.php:3163 msgid "LSsession : Your are not authorized to do this action." msgstr "LSsession : Vous n'êtes pas autorisé à faire cette action." -#: includes/class/class.LSsession.php:3161 +#: includes/class/class.LSsession.php:3166 msgid "LSsession : Some informations are missing to display this page." msgstr "LSsession : Des informations sont manquantes pour afficher cette page." -#: includes/class/class.LSsession.php:3164 +#: includes/class/class.LSsession.php:3169 msgid "" "LSsession : The function '%{function}' of the custom action " "'%{customAction}' does not exists or is not configured." @@ -1620,24 +1634,24 @@ msgstr "" "LSsession : La fonction '%{function}' de l'action personnalisée " "'%{customAction}' n'existe pas ou n'est pas configurée." -#: includes/class/class.LSsession.php:3167 +#: includes/class/class.LSsession.php:3172 msgid "LSsession : Fail to retrieve user's LDAP credentials from LSauth." msgstr "" "LSsession : Erreur en récupérant les identifiants LDAP de l'utilisateur " "depuis LSauth." -#: includes/class/class.LSsession.php:3170 +#: includes/class/class.LSsession.php:3175 msgid "" "LSsession : Fail to reconnect to LDAP server with user's LDAP credentials." msgstr "" "LSsession : Impossible de se reconnecter au serveur LDAP avec les " "identifiants de l'utilisateur." -#: includes/class/class.LSsession.php:3173 +#: includes/class/class.LSsession.php:3178 msgid "LSsession : No import/export format define for this object type." msgstr "LSsession : Aucun format d'entrée/sortie défini pour ce type d'objet." -#: includes/class/class.LSsession.php:3176 +#: includes/class/class.LSsession.php:3181 msgid "" "LSsession : Error during creation of list of levels. Contact administrators. " "(Code : %{code})" @@ -1645,13 +1659,13 @@ msgstr "" "LSsession : Erreur durant la création de la liste des niveaux. Contacter les " "administrateurs. (Code : %{type})" -#: includes/class/class.LSsession.php:3179 +#: includes/class/class.LSsession.php:3184 msgid "LSsession : The password recovery is disabled for this LDAP server." msgstr "" "LSsession : La récupération de mot de passe est désactivée pour ce serveur " "LDAP." -#: includes/class/class.LSsession.php:3182 +#: includes/class/class.LSsession.php:3187 msgid "" "LSsession : Some informations are missing to recover your password. Contact " "administrators." @@ -1659,7 +1673,7 @@ msgstr "" "LSsession : Des informations sont manques pour pouvoir récupérer votre mot " "de passe. Contacter les administrateurs." -#: includes/class/class.LSsession.php:3185 +#: includes/class/class.LSsession.php:3190 msgid "" "LSsession : Error during password recovery. Contact administrators.(Step : " "%{step})" @@ -1667,7 +1681,7 @@ msgstr "" "LSsession : Erreur durant la récupération de votre mot de passe. Contacter " "les administrateurs. (Etape : %{step})" -#: includes/class/class.LSsession.php:3188 +#: includes/class/class.LSsession.php:3193 msgid "" "LSsession : The function '%{func}' configured for the view '%{view}' of the " "LSaddon '%{addon}' is not declared in the LSaddon file." @@ -1675,11 +1689,11 @@ msgstr "" "LSsession : la fonction '%{func}' configurée pour la vue '%{view}' du " "LSaddon '%{addon}' n'est pas déclaré dans le fichier du LSaddon." -#: includes/class/class.LSsession.php:3191 +#: includes/class/class.LSsession.php:3196 msgid "LSsession : Failed to load resource file '%{file}'." msgstr "LSsession : Impossible de charger le fichier de ressource '%{file}'." -#: includes/class/class.LSsession.php:3194 +#: includes/class/class.LSsession.php:3199 msgid "" "LSsession : The function '%{func}' configured for the view '%{view}' of the " "LSaddon '%{addon}' doesn't exist." @@ -1687,11 +1701,11 @@ msgstr "" "LSsession : la fonction '%{func}' configurée pour la vue '%{view}' du " "LSaddon '%{addon}' n'existe pas." -#: includes/class/class.LSsession.php:3197 +#: includes/class/class.LSsession.php:3202 msgid "LSsession : invalid related object's DN pass in parameter." msgstr "LSsession : DN d'objet en relation incorrect dans les paramètres." -#: includes/class/class.LSsession.php:3200 +#: includes/class/class.LSsession.php:3205 msgid "" "LSsession : the LSaddon %{addon} keep using old-style addon view URL. Please " "upgrade it." @@ -1699,7 +1713,7 @@ msgstr "" "LSsession : le LSaddon %{addon} utilise toujours l'ancien type d'URL de " "vues. Merci de le mettre à jour." -#: includes/class/class.LSsession.php:3203 +#: includes/class/class.LSsession.php:3208 msgid "" "LSsession : You have been redirect from an old-style URL %{url}. Please " "upgrade this link." @@ -1707,7 +1721,7 @@ msgstr "" "LSsession : Vous avez été redirigé depuis une ancienne URL %{url}. Merci de " "le mettre à jour ce lien." -#: includes/class/class.LSsession.php:3206 +#: includes/class/class.LSsession.php:3211 msgid "" "LSsession : You always seem to use %{old} in your custom code: Please " "upgrade it and use %{new}.
\n"
@@ -1724,25 +1738,25 @@ msgstr ""
 msgid "Invalid file type (%{type})."
 msgstr "Type de fichier invalide (%{type})."
 
-#: includes/class/class.LSldapObject.php:577
+#: includes/class/class.LSldapObject.php:584
 msgid "The attribute %{attr} is not valid."
 msgstr "L'attribut %{attr} n'est pas valide."
 
-#: includes/class/class.LSldapObject.php:3150
+#: includes/class/class.LSldapObject.php:3157
 msgid "LSldapObject : Object type unknown."
 msgstr "LSldapObject : Type d'objet inconnu."
 
-#: includes/class/class.LSldapObject.php:3153
+#: includes/class/class.LSldapObject.php:3160
 msgid "LSldapObject : Update form is not defined for the object %{obj}."
 msgstr ""
 "LSldapObject : Le formulaire de mise à jour n'est pas défini pour l'objet "
 "%{obj}."
 
-#: includes/class/class.LSldapObject.php:3156
+#: includes/class/class.LSldapObject.php:3163
 msgid "LSldapObject : No form exists for the object %{obj}."
 msgstr "LSldapObject : Aucun formulaire n'existe pour l'objet %{obj}"
 
-#: includes/class/class.LSldapObject.php:3159
+#: includes/class/class.LSldapObject.php:3166
 msgid ""
 "LSldapObject : The function %{func} to validate the attribute %{attr} the "
 "object %{obj} is unknow."
@@ -1750,7 +1764,7 @@ msgstr ""
 "LSldapObject : La fonction %{func} pour valider l'attribut %{attr} de "
 "l'objet %{obj} est inconnue."
 
-#: includes/class/class.LSldapObject.php:3162
+#: includes/class/class.LSldapObject.php:3169
 msgid ""
 "LSldapObject : Configuration data are missing to validate the attribute "
 "%{attr} of the object %{obj}."
@@ -1758,7 +1772,7 @@ msgstr ""
 "LSldapObject : Des données de configurations sont manquantes pour pouvoir "
 "valider l'attribut %{attr} de l'objet %{obj}."
 
-#: includes/class/class.LSldapObject.php:3166
+#: includes/class/class.LSldapObject.php:3173
 msgid ""
 "LSldapObject : The function %{func} to be executed on the object event "
 "%{event} doesn't exist."
@@ -1766,14 +1780,14 @@ msgstr ""
 "LSldapObject : La fonction %{func} devant être exécutée lors de l'évènement "
 "%{event} de l'objet n'existe pas."
 
-#: includes/class/class.LSldapObject.php:3169
+#: includes/class/class.LSldapObject.php:3176
 msgid ""
 "LSldapObject : The %{func} execution on the object event %{event} failed."
 msgstr ""
 "LSldapObject : L'exécution de la fonction %{func} lors de l'évènement "
 "%{event} de l'objet a échouée."
 
-#: includes/class/class.LSldapObject.php:3173
+#: includes/class/class.LSldapObject.php:3180
 msgid ""
 "LSldapObject : Class %{class}, which method %{meth} to be executed on the "
 "object event %{event}, doesn't exist."
@@ -1781,7 +1795,7 @@ msgstr ""
 "La classe %{class}, contenant la méthode %{meth} devant être exécutée lors "
 "de l'évènement %{event} de l'objet, n'existe pas."
 
-#: includes/class/class.LSldapObject.php:3176
+#: includes/class/class.LSldapObject.php:3183
 msgid ""
 "LSldapObject : Method %{meth} within %{class} class to be executed on object "
 "event %{event}, doesn't exist."
@@ -1789,7 +1803,7 @@ msgstr ""
 "LSldapObject : La méthode %{meth} de la classe %{class} devant être exécutée "
 "lors de l'évènement %{event} de l'objet n'existe pas."
 
-#: includes/class/class.LSldapObject.php:3179
+#: includes/class/class.LSldapObject.php:3186
 msgid ""
 "LSldapObject : Error during execute %{meth} method within %{class} class, to "
 "be executed on object event %{event}."
@@ -1797,7 +1811,7 @@ msgstr ""
 "LSldapObject : Erreur durant l'exécution de la méthode %{meth} de la classe "
 "%{class} devant être exécutée lors de l'évènement %{event} de l'objet."
 
-#: includes/class/class.LSldapObject.php:3183
+#: includes/class/class.LSldapObject.php:3190
 msgid ""
 "LSldapObject : Some configuration data of the object type %{obj} are missing "
 "to generate the DN of the new object."
@@ -1805,7 +1819,7 @@ msgstr ""
 "LSldapObject : Des informations de configuration du type d'objet %{obj} sont "
 "manquantes pour la génération du DN du nouvel objet."
 
-#: includes/class/class.LSldapObject.php:3186
+#: includes/class/class.LSldapObject.php:3193
 msgid ""
 "LSldapObject : The attibute %{attr} of the object is not yet defined. Can't "
 "generate DN."
@@ -1813,11 +1827,11 @@ msgstr ""
 "LSldapObject : L'attribut %{attr} de l'objet n'est pas encore défini. "
 "Impossible de générer le DN."
 
-#: includes/class/class.LSldapObject.php:3189
+#: includes/class/class.LSldapObject.php:3196
 msgid "LSldapObject : Without DN, the object could not be changed."
 msgstr "LSldapObject : Sans DN, l'objet ne peut pas être modifié."
 
-#: includes/class/class.LSldapObject.php:3192
+#: includes/class/class.LSldapObject.php:3199
 msgid ""
 "LSldapObject : The attribute %{attr_depend} depending on the attribute "
 "%{attr} doesn't exist."
@@ -1825,39 +1839,39 @@ msgstr ""
 "LSldapObject : L'attritbut %{attr_depend} dépendant de l'attribut %{attr} "
 "n'existe pas."
 
-#: includes/class/class.LSldapObject.php:3195
+#: includes/class/class.LSldapObject.php:3202
 msgid "LSldapObject : Error during deleting the object %{objectname}."
 msgstr "LSldapObject : Erreur durant la suppression de l'objet %{objectname}"
 
-#: includes/class/class.LSldapObject.php:3199
+#: includes/class/class.LSldapObject.php:3206
 msgid ""
 "LSldapObject : Error during actions to be executed before renaming the objet."
 msgstr ""
 "LSldapObject : Erreur durant les actions devant être exécutée avant de "
 "renommer l'objet."
 
-#: includes/class/class.LSldapObject.php:3202
+#: includes/class/class.LSldapObject.php:3209
 msgid ""
 "LSldapObject : Error during actions to be executed after renaming the objet."
 msgstr ""
 "LSldapObject : Erreur durant les actions devant être exécutée après avoir "
 "renommé l'objet."
 
-#: includes/class/class.LSldapObject.php:3206
+#: includes/class/class.LSldapObject.php:3213
 msgid ""
 "LSldapObject : Error during actions to be executed before deleting the objet."
 msgstr ""
 "LSldapObject : Erreur durant les actions devant être exécutée avant de "
 "supprimer l'objet."
 
-#: includes/class/class.LSldapObject.php:3209
+#: includes/class/class.LSldapObject.php:3216
 msgid ""
 "LSldapObject : Error during actions to be executed after deleting the objet."
 msgstr ""
 "LSldapObject : Erreur durant les actions devant être exécutée après avoir "
 "supprimé l'objet."
 
-#: includes/class/class.LSldapObject.php:3213
+#: includes/class/class.LSldapObject.php:3220
 msgid ""
 "LSldapObject : Error during the actions to be executed before creating the "
 "object."
@@ -1865,7 +1879,7 @@ msgstr ""
 "LSldapObject : Erreur durant les actions devant être exécutée avant de créer "
 "l'objet."
 
-#: includes/class/class.LSldapObject.php:3216
+#: includes/class/class.LSldapObject.php:3223
 msgid ""
 "LSldapObject : Error during the actions to be executed after creating the "
 "object. It was created anyway."
@@ -1873,7 +1887,7 @@ msgstr ""
 "LSldapObject : Erreur durant les actions devant être exécutées après la "
 "création de l'objet. Il a tout de même été créé."
 
-#: includes/class/class.LSldapObject.php:3220
+#: includes/class/class.LSldapObject.php:3227
 msgid ""
 "LSldapObject : The function %{func} to be executed before creating the "
 "object doesn't exist."
@@ -1881,7 +1895,7 @@ msgstr ""
 "LSldapObject : La fonction %{func} devant être exécutée avant la création de "
 "l'objet n'existe pas."
 
-#: includes/class/class.LSldapObject.php:3223
+#: includes/class/class.LSldapObject.php:3230
 msgid ""
 "LSldapObject : Error executing the function %{func} to be execute after "
 "deleting the object."
@@ -1889,7 +1903,7 @@ msgstr ""
 "LSldapObject : Erreur durant l'exécution de la fonction %{func} devant être "
 "exécutée après la suppression de l'objet."
 
-#: includes/class/class.LSldapObject.php:3226
+#: includes/class/class.LSldapObject.php:3233
 msgid ""
 "LSldapObject : The function %{func} to be executed after deleting the object "
 "doesn't exist."
@@ -1897,7 +1911,7 @@ msgstr ""
 "LSldapObject : La fonction %{func} devant être exécutée après la suppression "
 "de l'objet n'existe pas."
 
-#: includes/class/class.LSldapObject.php:3229
+#: includes/class/class.LSldapObject.php:3236
 msgid ""
 "LSldapObject : Error executing the function %{func} to be execute after "
 "creating the object."
@@ -1905,7 +1919,7 @@ msgstr ""
 "LSldapObject : Erreur durant l'exécution de la fonction %{func} devant être "
 "exécutée après la création de l'objet."
 
-#: includes/class/class.LSldapObject.php:3233
+#: includes/class/class.LSldapObject.php:3240
 msgid ""
 "LSldapObject : %{func} function, to be executed on object event %{event}, "
 "doesn't exist."
@@ -1913,7 +1927,7 @@ msgstr ""
 "LSldapObject : La fonction %{func}, devant être exécutée lors de l'évènement "
 "%{event} de l'objet, n'existe pas."
 
-#: includes/class/class.LSldapObject.php:3236
+#: includes/class/class.LSldapObject.php:3243
 msgid ""
 "LSldapObject : Error during the execution of %{func} function on object "
 "event %{event}."
@@ -1921,7 +1935,7 @@ msgstr ""
 "LSldapObject : Erreur durant l'exécution de la fonction %{func} lors de "
 "l'évènement %{event} de l'objet."
 
-#: includes/class/class.LSldapObject.php:3240
+#: includes/class/class.LSldapObject.php:3247
 msgid ""
 "LSldapObject : %{meth} method, to be executed on object event %{event}, "
 "doesn't exist."
@@ -1929,7 +1943,7 @@ msgstr ""
 "LSldapObject : La méthode %{meth}, devant être exécutée lors de l'évènement "
 "%{event} de l'objet, n'existe pas."
 
-#: includes/class/class.LSldapObject.php:3243
+#: includes/class/class.LSldapObject.php:3250
 msgid ""
 "LSldapObject : Error during execution of %{meth} method on object event "
 "%{event}."
@@ -1937,13 +1951,13 @@ msgstr ""
 "LSldapObject : Erreur durant l'exécution de la méthode %{meth} lors de "
 "l'évènement %{event} de l'objet."
 
-#: includes/class/class.LSldapObject.php:3246
+#: includes/class/class.LSldapObject.php:3253
 msgid "LSldapObject : Error during generate LDAP filter for %{LSobject}."
 msgstr ""
 "LSldapObject : Erreur durant la génération du filtre LDAP de l'objet "
 "%{LSobject}."
 
-#: includes/class/class.LSldapObject.php:3250
+#: includes/class/class.LSldapObject.php:3257
 msgid ""
 "LSldapObject : Error during execution of the custom action %{customAction} "
 "on %{objectname}."
@@ -1951,22 +1965,22 @@ msgstr ""
 "LSldapObject : Erreur durant l'exécution de l'action personnalisée "
 "%{customAction} sur l'objet %{objectname}."
 
-#: includes/class/class.LSldapObject.php:3254
+#: includes/class/class.LSldapObject.php:3261
 msgid "LSldapObject : Fail to retrieve container DN."
 msgstr "LSldapObject : Impossible de récupérer le DN parent."
 
-#: includes/class/class.LSldapObject.php:3257
+#: includes/class/class.LSldapObject.php:3264
 msgid ""
 "LSldapObject : The function %{func} to generate container DN is not callable."
 msgstr ""
 "LSldapObject : La fonction %{func} pour générer le DN parent n'est pas "
 "exécutable."
 
-#: includes/class/class.LSldapObject.php:3260
+#: includes/class/class.LSldapObject.php:3267
 msgid "LSldapObject : Error during generating container DN : %{error}"
 msgstr "LSldapObject : Erreur durant la génération du DN parent : %{error}."
 
-#: includes/class/class.LSldapObject.php:3263
+#: includes/class/class.LSldapObject.php:3270
 msgid ""
 "LSldapObject : An LDAP object with the same DN as generated for this new one "
 "already exists. Please verify your configuration."
@@ -1974,7 +1988,7 @@ msgstr ""
 "LSldapObject : Un objet LDAP avec le même DN que celui généré pour ce nouvel "
 "objet existe déjà. Merci de vérifier votre configuration."
 
-#: includes/class/class.LSldapObject.php:3268
+#: includes/class/class.LSldapObject.php:3275
 msgid ""
 "LSrelation : Some parameters are missing in the call of methods to handle "
 "standard relations (Method : %{meth})."
@@ -2326,11 +2340,11 @@ msgstr "%{label} : Confirmez-vous la modification du mot de passe ?"
 msgid "Passwords entered did not match."
 msgstr "Les mots de passe saisis ne correspondent pas."
 
-#: includes/class/class.LSformElement_password.php:366
+#: includes/class/class.LSformElement_password.php:378
 msgid "Notice mail sent."
 msgstr "Le mail de notification a été envoyé."
 
-#: includes/class/class.LSformElement_password.php:479
+#: includes/class/class.LSformElement_password.php:491
 msgid ""
 "LSformElement_password : No valid contact mail address available : Can't "
 "send new password."
@@ -2338,20 +2352,20 @@ msgstr ""
 "LSformElement_password : Aucun mail de contact valide disponible : "
 "impossible d'envoyer le nouveau mot de passe."
 
-#: includes/class/class.LSformElement_password.php:482
+#: includes/class/class.LSformElement_password.php:494
 msgid "LSformElement_password : Fail to send new password by email to %{mail}."
 msgstr ""
 "LSformElement_password : Une erreur est survenue en envoyant le nouveau mot "
 "de passe à %{mail}."
 
-#: includes/class/class.LSformElement_password.php:485
+#: includes/class/class.LSformElement_password.php:497
 msgid ""
 "LSformElement_password : Fail to exec pwgen. Check it's correctly installed."
 msgstr ""
 "LSformElement_password : Impossible d'exécuter pwgen. Vérifier qu'il est "
 "bien installé."
 
-#: includes/class/class.LSformElement_password.php:488
+#: includes/class/class.LSformElement_password.php:500
 msgid ""
 "LSformElement_password : Fail to determine witch e-mail attribute to use to "
 "send new password : get_mail_attr_function parameter not refer to a valid "
@@ -2361,7 +2375,7 @@ msgstr ""
 "être utilisé pour l'envoi du mot de passe : le paramètre "
 "get_mail_attr_function ne fait pas référence à une fonction valide."
 
-#: includes/class/class.LSformElement_password.php:491
+#: includes/class/class.LSformElement_password.php:503
 msgid ""
 "LSformElement_password : Fail to determine witch e-mail attribute to use to "
 "send new password : get_mail_attr_function throwed an exception : %{msg}"
diff --git a/src/lang/ldapsaisie.pot b/src/lang/ldapsaisie.pot
index 906e11f8..f084e932 100644
--- a/src/lang/ldapsaisie.pot
+++ b/src/lang/ldapsaisie.pot
@@ -279,11 +279,11 @@ msgid ""
 "Organizational Chart Support : The global variable %{var} is not defined."
 msgstr ""
 
-#: includes/addons/LSaddons.orgchart.php:67
+#: includes/addons/LSaddons.orgchart.php:68
 msgid "Organizational chart"
 msgstr ""
 
-#: includes/addons/LSaddons.orgchart.php:75
+#: includes/addons/LSaddons.orgchart.php:76
 msgid "Organizational chart data"
 msgstr ""
 
@@ -359,7 +359,7 @@ msgid "Show LdapSaisie modifications"
 msgstr ""
 
 #: includes/addons/LSaddons.accesslog.php:244
-#: includes/class/class.LSsession.php:1870 includes/routes.php:157
+#: includes/class/class.LSsession.php:1875 includes/routes.php:157
 #: includes/routes.php:474 templates/default/select.tpl:29
 msgid "Refresh"
 msgstr ""
@@ -638,83 +638,87 @@ msgstr ""
 msgid "LSformRule_%{type}: Parameter %{param} is not found."
 msgstr ""
 
-#: includes/class/class.LSio.php:334
+#: includes/class/class.LSio.php:339
 msgid "Failed to set post data on creation form."
 msgstr ""
 
-#: includes/class/class.LSio.php:340
+#: includes/class/class.LSio.php:345
 msgid "Error validating creation form."
 msgstr ""
 
-#: includes/class/class.LSio.php:345
+#: includes/class/class.LSio.php:350
 msgid "Failed to validate object data."
 msgstr ""
 
-#: includes/class/class.LSio.php:352
+#: includes/class/class.LSio.php:357
 msgid "Failed to generate DN for this object."
 msgstr ""
 
-#: includes/class/class.LSio.php:371
+#: includes/class/class.LSio.php:376
 msgid "Error creating object on LDAP server."
 msgstr ""
 
-#: includes/class/class.LSio.php:377
+#: includes/class/class.LSio.php:382
 msgid "An object already exist on LDAP server with DN %{dn}."
 msgstr ""
 
-#: includes/class/class.LSio.php:389
+#: includes/class/class.LSio.php:394
 msgid ""
 "Failed to load existing object %{dn} from LDAP server. Can't update object."
 msgstr ""
 
-#: includes/class/class.LSio.php:398
+#: includes/class/class.LSio.php:403
 msgid "Failed to set post data on update form."
 msgstr ""
 
-#: includes/class/class.LSio.php:404
+#: includes/class/class.LSio.php:409
 msgid "Error validating update form."
 msgstr ""
 
-#: includes/class/class.LSio.php:419
+#: includes/class/class.LSio.php:424
 msgid "Error updating object on LDAP server."
 msgstr ""
 
-#: includes/class/class.LSio.php:825
+#: includes/class/class.LSio.php:830
 msgid "LSio: Post data not found or not completed."
 msgstr ""
 
-#: includes/class/class.LSio.php:828
+#: includes/class/class.LSio.php:833
 msgid "LSio: object type invalid."
 msgstr ""
 
-#: includes/class/class.LSio.php:831
+#: includes/class/class.LSio.php:836
 msgid "LSio: input/output format %{format} invalid."
 msgstr ""
 
-#: includes/class/class.LSio.php:834
+#: includes/class/class.LSio.php:839
 msgid "LSio: Fail to initialize input/output driver."
 msgstr ""
 
-#: includes/class/class.LSio.php:837
+#: includes/class/class.LSio.php:842
 msgid "LSio: Fail to load objects's data from input file."
 msgstr ""
 
-#: includes/class/class.LSio.php:840
+#: includes/class/class.LSio.php:845
 msgid "LSio: Fail to load objects's data to export from LDAP directory."
 msgstr ""
 
-#: includes/class/class.LSio.php:843
+#: includes/class/class.LSio.php:848
 msgid "LSio: Fail to export objects's data."
 msgstr ""
 
-#: includes/class/class.LSio.php:846
+#: includes/class/class.LSio.php:851
 msgid "LSio: An error occured running before import hooks. Stop the import."
 msgstr ""
 
-#: includes/class/class.LSio.php:849
+#: includes/class/class.LSio.php:854
 msgid "LSio: An error occured running after import hooks."
 msgstr ""
 
+#: includes/class/class.LSio.php:857
+msgid "LSio: Error occured loading objects's data from input file."
+msgstr ""
+
 #: includes/class/class.LSformElement_supannRessourceEtatDate.php:61
 msgid "Start date"
 msgstr ""
@@ -849,6 +853,12 @@ msgstr ""
 msgid "Unknown type"
 msgstr ""
 
+#: includes/class/class.LSioFormatDriver.php:197
+msgid ""
+"LSioFormatDriver : Fail to generate the value of the attribute %{attr} of "
+"the object %{object}."
+msgstr ""
+
 #: includes/class/class.LSformElement_valueWithUnit.php:243
 msgid ""
 "LSformElement_valueWithUnit : Units configuration data are missing for the "
@@ -1301,157 +1311,157 @@ msgstr ""
 msgid "Clear"
 msgstr ""
 
-#: includes/class/class.LSsession.php:1655
+#: includes/class/class.LSsession.php:1660
 msgid "Connection"
 msgstr ""
 
-#: includes/class/class.LSsession.php:1675
+#: includes/class/class.LSsession.php:1680
 msgid "Recovery of your credentials"
 msgstr ""
 
-#: includes/class/class.LSsession.php:1684
+#: includes/class/class.LSsession.php:1689
 msgid "Please fill the identifier field to proceed recovery procedure"
 msgstr ""
 
-#: includes/class/class.LSsession.php:1689
+#: includes/class/class.LSsession.php:1694
 msgid ""
 "An email has been sent to  %{mail}. Please follow the instructions on it."
 msgstr ""
 
-#: includes/class/class.LSsession.php:1698
+#: includes/class/class.LSsession.php:1703
 msgid "Your new password has been sent to %{mail}."
 msgstr ""
 
-#: includes/class/class.LSsession.php:2960 templates/default/select.tpl:20
+#: includes/class/class.LSsession.php:2965 templates/default/select.tpl:20
 #: templates/default/recoverpassword.tpl:17 templates/default/login.tpl:16
 msgid "Level"
 msgstr ""
 
-#: includes/class/class.LSsession.php:3128
+#: includes/class/class.LSsession.php:3133
 msgid "LSsession : The constant '%{const}' is not defined."
 msgstr ""
 
-#: includes/class/class.LSsession.php:3131
+#: includes/class/class.LSsession.php:3136
 msgid ""
 "LSsession : The addon '%{addon}' support is uncertain. Verify system "
 "compatibility and the add-on configuration."
 msgstr ""
 
-#: includes/class/class.LSsession.php:3134
+#: includes/class/class.LSsession.php:3139
 msgid ""
 "LSsession : LDAP server's configuration data are invalid. Can't connect."
 msgstr ""
 
-#: includes/class/class.LSsession.php:3137
+#: includes/class/class.LSsession.php:3142
 msgid "LSsession : Failed to load LSobject type '%{type}' : unknon type."
 msgstr ""
 
-#: includes/class/class.LSsession.php:3140
+#: includes/class/class.LSsession.php:3145
 msgid "LSsession : Failed to load LSclass '%{class}'."
 msgstr ""
 
-#: includes/class/class.LSsession.php:3143
+#: includes/class/class.LSsession.php:3148
 msgid "LSsession : Login or password incorrect."
 msgstr ""
 
-#: includes/class/class.LSsession.php:3146
+#: includes/class/class.LSsession.php:3151
 msgid "LSsession : Impossible to identify you : Duplication of identities."
 msgstr ""
 
-#: includes/class/class.LSsession.php:3149
+#: includes/class/class.LSsession.php:3154
 msgid "LSsession : Can't load class of authentification (%{class})."
 msgstr ""
 
-#: includes/class/class.LSsession.php:3152
+#: includes/class/class.LSsession.php:3157
 msgid "LSsession : Can't connect to LDAP server."
 msgstr ""
 
-#: includes/class/class.LSsession.php:3155
+#: includes/class/class.LSsession.php:3160
 msgid "LSsession : Impossible to authenticate you."
 msgstr ""
 
-#: includes/class/class.LSsession.php:3158
+#: includes/class/class.LSsession.php:3163
 msgid "LSsession : Your are not authorized to do this action."
 msgstr ""
 
-#: includes/class/class.LSsession.php:3161
+#: includes/class/class.LSsession.php:3166
 msgid "LSsession : Some informations are missing to display this page."
 msgstr ""
 
-#: includes/class/class.LSsession.php:3164
+#: includes/class/class.LSsession.php:3169
 msgid ""
 "LSsession : The function '%{function}' of the custom action "
 "'%{customAction}' does not exists or is not configured."
 msgstr ""
 
-#: includes/class/class.LSsession.php:3167
+#: includes/class/class.LSsession.php:3172
 msgid "LSsession : Fail to retrieve user's LDAP credentials from LSauth."
 msgstr ""
 
-#: includes/class/class.LSsession.php:3170
+#: includes/class/class.LSsession.php:3175
 msgid ""
 "LSsession : Fail to reconnect to LDAP server with user's LDAP credentials."
 msgstr ""
 
-#: includes/class/class.LSsession.php:3173
+#: includes/class/class.LSsession.php:3178
 msgid "LSsession : No import/export format define for this object type."
 msgstr ""
 
-#: includes/class/class.LSsession.php:3176
+#: includes/class/class.LSsession.php:3181
 msgid ""
 "LSsession : Error during creation of list of levels. Contact administrators. "
 "(Code : %{code})"
 msgstr ""
 
-#: includes/class/class.LSsession.php:3179
+#: includes/class/class.LSsession.php:3184
 msgid "LSsession : The password recovery is disabled for this LDAP server."
 msgstr ""
 
-#: includes/class/class.LSsession.php:3182
+#: includes/class/class.LSsession.php:3187
 msgid ""
 "LSsession : Some informations are missing to recover your password. Contact "
 "administrators."
 msgstr ""
 
-#: includes/class/class.LSsession.php:3185
+#: includes/class/class.LSsession.php:3190
 msgid ""
 "LSsession : Error during password recovery. Contact administrators.(Step : "
 "%{step})"
 msgstr ""
 
-#: includes/class/class.LSsession.php:3188
+#: includes/class/class.LSsession.php:3193
 msgid ""
 "LSsession : The function '%{func}' configured for the view '%{view}' of the "
 "LSaddon '%{addon}' is not declared in the LSaddon file."
 msgstr ""
 
-#: includes/class/class.LSsession.php:3191
+#: includes/class/class.LSsession.php:3196
 msgid "LSsession : Failed to load resource file '%{file}'."
 msgstr ""
 
-#: includes/class/class.LSsession.php:3194
+#: includes/class/class.LSsession.php:3199
 msgid ""
 "LSsession : The function '%{func}' configured for the view '%{view}' of the "
 "LSaddon '%{addon}' doesn't exist."
 msgstr ""
 
-#: includes/class/class.LSsession.php:3197
+#: includes/class/class.LSsession.php:3202
 msgid "LSsession : invalid related object's DN pass in parameter."
 msgstr ""
 
-#: includes/class/class.LSsession.php:3200
+#: includes/class/class.LSsession.php:3205
 msgid ""
 "LSsession : the LSaddon %{addon} keep using old-style addon view URL. Please "
 "upgrade it."
 msgstr ""
 
-#: includes/class/class.LSsession.php:3203
+#: includes/class/class.LSsession.php:3208
 msgid ""
 "LSsession : You have been redirect from an old-style URL %{url}. Please "
 "upgrade this link."
 msgstr ""
 
-#: includes/class/class.LSsession.php:3206
+#: includes/class/class.LSsession.php:3211
 msgid ""
 "LSsession : You always seem to use %{old} in your custom code: Please "
 "upgrade it and use %{new}.
\n"
@@ -1464,199 +1474,199 @@ msgstr ""
 msgid "Invalid file type (%{type})."
 msgstr ""
 
-#: includes/class/class.LSldapObject.php:577
+#: includes/class/class.LSldapObject.php:584
 msgid "The attribute %{attr} is not valid."
 msgstr ""
 
-#: includes/class/class.LSldapObject.php:3150
+#: includes/class/class.LSldapObject.php:3157
 msgid "LSldapObject : Object type unknown."
 msgstr ""
 
-#: includes/class/class.LSldapObject.php:3153
+#: includes/class/class.LSldapObject.php:3160
 msgid "LSldapObject : Update form is not defined for the object %{obj}."
 msgstr ""
 
-#: includes/class/class.LSldapObject.php:3156
+#: includes/class/class.LSldapObject.php:3163
 msgid "LSldapObject : No form exists for the object %{obj}."
 msgstr ""
 
-#: includes/class/class.LSldapObject.php:3159
+#: includes/class/class.LSldapObject.php:3166
 msgid ""
 "LSldapObject : The function %{func} to validate the attribute %{attr} the "
 "object %{obj} is unknow."
 msgstr ""
 
-#: includes/class/class.LSldapObject.php:3162
+#: includes/class/class.LSldapObject.php:3169
 msgid ""
 "LSldapObject : Configuration data are missing to validate the attribute "
 "%{attr} of the object %{obj}."
 msgstr ""
 
-#: includes/class/class.LSldapObject.php:3166
+#: includes/class/class.LSldapObject.php:3173
 msgid ""
 "LSldapObject : The function %{func} to be executed on the object event "
 "%{event} doesn't exist."
 msgstr ""
 
-#: includes/class/class.LSldapObject.php:3169
+#: includes/class/class.LSldapObject.php:3176
 msgid ""
 "LSldapObject : The %{func} execution on the object event %{event} failed."
 msgstr ""
 
-#: includes/class/class.LSldapObject.php:3173
+#: includes/class/class.LSldapObject.php:3180
 msgid ""
 "LSldapObject : Class %{class}, which method %{meth} to be executed on the "
 "object event %{event}, doesn't exist."
 msgstr ""
 
-#: includes/class/class.LSldapObject.php:3176
+#: includes/class/class.LSldapObject.php:3183
 msgid ""
 "LSldapObject : Method %{meth} within %{class} class to be executed on object "
 "event %{event}, doesn't exist."
 msgstr ""
 
-#: includes/class/class.LSldapObject.php:3179
+#: includes/class/class.LSldapObject.php:3186
 msgid ""
 "LSldapObject : Error during execute %{meth} method within %{class} class, to "
 "be executed on object event %{event}."
 msgstr ""
 
-#: includes/class/class.LSldapObject.php:3183
+#: includes/class/class.LSldapObject.php:3190
 msgid ""
 "LSldapObject : Some configuration data of the object type %{obj} are missing "
 "to generate the DN of the new object."
 msgstr ""
 
-#: includes/class/class.LSldapObject.php:3186
+#: includes/class/class.LSldapObject.php:3193
 msgid ""
 "LSldapObject : The attibute %{attr} of the object is not yet defined. Can't "
 "generate DN."
 msgstr ""
 
-#: includes/class/class.LSldapObject.php:3189
+#: includes/class/class.LSldapObject.php:3196
 msgid "LSldapObject : Without DN, the object could not be changed."
 msgstr ""
 
-#: includes/class/class.LSldapObject.php:3192
+#: includes/class/class.LSldapObject.php:3199
 msgid ""
 "LSldapObject : The attribute %{attr_depend} depending on the attribute "
 "%{attr} doesn't exist."
 msgstr ""
 
-#: includes/class/class.LSldapObject.php:3195
-msgid "LSldapObject : Error during deleting the object %{objectname}."
-msgstr ""
-
-#: includes/class/class.LSldapObject.php:3199
-msgid ""
-"LSldapObject : Error during actions to be executed before renaming the objet."
-msgstr ""
-
 #: includes/class/class.LSldapObject.php:3202
-msgid ""
-"LSldapObject : Error during actions to be executed after renaming the objet."
+msgid "LSldapObject : Error during deleting the object %{objectname}."
 msgstr ""
 
 #: includes/class/class.LSldapObject.php:3206
 msgid ""
-"LSldapObject : Error during actions to be executed before deleting the objet."
+"LSldapObject : Error during actions to be executed before renaming the objet."
 msgstr ""
 
 #: includes/class/class.LSldapObject.php:3209
 msgid ""
-"LSldapObject : Error during actions to be executed after deleting the objet."
+"LSldapObject : Error during actions to be executed after renaming the objet."
 msgstr ""
 
 #: includes/class/class.LSldapObject.php:3213
 msgid ""
+"LSldapObject : Error during actions to be executed before deleting the objet."
+msgstr ""
+
+#: includes/class/class.LSldapObject.php:3216
+msgid ""
+"LSldapObject : Error during actions to be executed after deleting the objet."
+msgstr ""
+
+#: includes/class/class.LSldapObject.php:3220
+msgid ""
 "LSldapObject : Error during the actions to be executed before creating the "
 "object."
 msgstr ""
 
-#: includes/class/class.LSldapObject.php:3216
+#: includes/class/class.LSldapObject.php:3223
 msgid ""
 "LSldapObject : Error during the actions to be executed after creating the "
 "object. It was created anyway."
 msgstr ""
 
-#: includes/class/class.LSldapObject.php:3220
+#: includes/class/class.LSldapObject.php:3227
 msgid ""
 "LSldapObject : The function %{func} to be executed before creating the "
 "object doesn't exist."
 msgstr ""
 
-#: includes/class/class.LSldapObject.php:3223
+#: includes/class/class.LSldapObject.php:3230
 msgid ""
 "LSldapObject : Error executing the function %{func} to be execute after "
 "deleting the object."
 msgstr ""
 
-#: includes/class/class.LSldapObject.php:3226
+#: includes/class/class.LSldapObject.php:3233
 msgid ""
 "LSldapObject : The function %{func} to be executed after deleting the object "
 "doesn't exist."
 msgstr ""
 
-#: includes/class/class.LSldapObject.php:3229
+#: includes/class/class.LSldapObject.php:3236
 msgid ""
 "LSldapObject : Error executing the function %{func} to be execute after "
 "creating the object."
 msgstr ""
 
-#: includes/class/class.LSldapObject.php:3233
+#: includes/class/class.LSldapObject.php:3240
 msgid ""
 "LSldapObject : %{func} function, to be executed on object event %{event}, "
 "doesn't exist."
 msgstr ""
 
-#: includes/class/class.LSldapObject.php:3236
+#: includes/class/class.LSldapObject.php:3243
 msgid ""
 "LSldapObject : Error during the execution of %{func} function on object "
 "event %{event}."
 msgstr ""
 
-#: includes/class/class.LSldapObject.php:3240
+#: includes/class/class.LSldapObject.php:3247
 msgid ""
 "LSldapObject : %{meth} method, to be executed on object event %{event}, "
 "doesn't exist."
 msgstr ""
 
-#: includes/class/class.LSldapObject.php:3243
+#: includes/class/class.LSldapObject.php:3250
 msgid ""
 "LSldapObject : Error during execution of %{meth} method on object event "
 "%{event}."
 msgstr ""
 
-#: includes/class/class.LSldapObject.php:3246
+#: includes/class/class.LSldapObject.php:3253
 msgid "LSldapObject : Error during generate LDAP filter for %{LSobject}."
 msgstr ""
 
-#: includes/class/class.LSldapObject.php:3250
+#: includes/class/class.LSldapObject.php:3257
 msgid ""
 "LSldapObject : Error during execution of the custom action %{customAction} "
 "on %{objectname}."
 msgstr ""
 
-#: includes/class/class.LSldapObject.php:3254
+#: includes/class/class.LSldapObject.php:3261
 msgid "LSldapObject : Fail to retrieve container DN."
 msgstr ""
 
-#: includes/class/class.LSldapObject.php:3257
+#: includes/class/class.LSldapObject.php:3264
 msgid ""
 "LSldapObject : The function %{func} to generate container DN is not callable."
 msgstr ""
 
-#: includes/class/class.LSldapObject.php:3260
+#: includes/class/class.LSldapObject.php:3267
 msgid "LSldapObject : Error during generating container DN : %{error}"
 msgstr ""
 
-#: includes/class/class.LSldapObject.php:3263
+#: includes/class/class.LSldapObject.php:3270
 msgid ""
 "LSldapObject : An LDAP object with the same DN as generated for this new one "
 "already exists. Please verify your configuration."
 msgstr ""
 
-#: includes/class/class.LSldapObject.php:3268
+#: includes/class/class.LSldapObject.php:3275
 msgid ""
 "LSrelation : Some parameters are missing in the call of methods to handle "
 "standard relations (Method : %{meth})."
@@ -1969,33 +1979,33 @@ msgstr ""
 msgid "Passwords entered did not match."
 msgstr ""
 
-#: includes/class/class.LSformElement_password.php:366
+#: includes/class/class.LSformElement_password.php:378
 msgid "Notice mail sent."
 msgstr ""
 
-#: includes/class/class.LSformElement_password.php:479
+#: includes/class/class.LSformElement_password.php:491
 msgid ""
 "LSformElement_password : No valid contact mail address available : Can't "
 "send new password."
 msgstr ""
 
-#: includes/class/class.LSformElement_password.php:482
+#: includes/class/class.LSformElement_password.php:494
 msgid "LSformElement_password : Fail to send new password by email to %{mail}."
 msgstr ""
 
-#: includes/class/class.LSformElement_password.php:485
+#: includes/class/class.LSformElement_password.php:497
 msgid ""
 "LSformElement_password : Fail to exec pwgen. Check it's correctly installed."
 msgstr ""
 
-#: includes/class/class.LSformElement_password.php:488
+#: includes/class/class.LSformElement_password.php:500
 msgid ""
 "LSformElement_password : Fail to determine witch e-mail attribute to use to "
 "send new password : get_mail_attr_function parameter not refer to a valid "
 "function."
 msgstr ""
 
-#: includes/class/class.LSformElement_password.php:491
+#: includes/class/class.LSformElement_password.php:503
 msgid ""
 "LSformElement_password : Fail to determine witch e-mail attribute to use to "
 "send new password : get_mail_attr_function throwed an exception : %{msg}"