From 74afda65d52835a6435aa2f0258bf464c6525499 Mon Sep 17 00:00:00 2001 From: Benjamin Renard Date: Tue, 14 Oct 2008 11:58:00 +0000 Subject: [PATCH] =?UTF-8?q?-=20LSldapObject=20:=20Ajout=20de=20la=20possib?= =?UTF-8?q?ilite=20de=20trigger=20avant=20et=20apr=C3=A8s=20la=20=09modifi?= =?UTF-8?q?cation=20d'un=20attribut=20en=20particulier=20-=20config.error?= =?UTF-8?q?=5Fcode.php=20:=20Revue=20de=20l'encodage=20/=20all=C3=A8gement?= =?UTF-8?q?=20du=20fichier?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../LSobjects/config.LSobjects.LSeepeople.php | 3 +- trunk/conf/config.error_code.php | 234 ++++++----------- trunk/includes/class/class.LSldapObject.php | 246 ++++++++++-------- 3 files changed, 227 insertions(+), 256 deletions(-) diff --git a/trunk/conf/LSobjects/config.LSobjects.LSeepeople.php b/trunk/conf/LSobjects/config.LSobjects.LSeepeople.php index 3893f3ee..1ecf9c48 100644 --- a/trunk/conf/LSobjects/config.LSobjects.LSeepeople.php +++ b/trunk/conf/LSobjects/config.LSobjects.LSeepeople.php @@ -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'), diff --git a/trunk/conf/config.error_code.php b/trunk/conf/config.error_code.php index 91020d5e..f8229901 100644 --- a/trunk/conf/config.error_code.php +++ b/trunk/conf/config.error_code.php @@ -22,314 +22,252 @@ $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éer correctement la liste des niveaux. Vé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}).") ) ); ?> diff --git a/trunk/includes/class/class.LSldapObject.php b/trunk/includes/class/class.LSldapObject.php index 082b6f1d..c2daa0b5 100644 --- a/trunk/includes/class/class.LSldapObject.php +++ b/trunk/includes/class/class.LSldapObject.php @@ -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éfinis la base de tout objet ldap géré par LdapSaisie * * @author Benjamin Renard */ @@ -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éfinis la configuration. + * Elle lance la construction du tableau d'attributs représentés par un objet LSattribute. * * @author Benjamin Renard * * @param[in] $type_name [required] 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 été 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é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éfinis le DN de l'objet et charge les valeurs de attributs de l'objet + * à partir de l'annuaire. * * @author Benjamin Renard * * @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é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ées de l'objet * * @author Benjamin Renard * - * @retval boolean true si la rechargement a réussi, false sinon. + * @retval boolean true si la rechargement a ré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éfini dans la configuration de l'objet ou spécifié en paramètre. * * @author Benjamin Renard * @@ -154,16 +154,16 @@ class LSldapObject { } /** - * Chaine formatée + * Chaine formatée * - * Cette fonction retourne la valeur d'une chaine formatée en prennant les valeurs + * Cette fonction retourne la valeur d'une chaine formatée en prennant les valeurs * de l'objet. * * @author Benjamin Renard * * @param[in] $format string Format de la chaine * - * @retval string Valeur d'une chaine formatée + * @retval string Valeur d'une chaine formaté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éthode construit un formulaire LSform à partir de la configuration de l'objet * et de chaque attribut. * - * @param[in] $idForm [required] 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 [required] 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. * * @author Benjamin Renard * - * @retval LSform Le formulaire crée + * @retval LSform Le formulaire cré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éthode construit un formulaire LSform à partir de la configuration de l'objet * et de chaque attribut. * - * @param[in] $idForm [required] Identifiant du formulaire a créer - * @param[in] $config Configuration spécifique pour le formulaire + * @param[in] $idForm [required] Identifiant du formulaire a créer + * @param[in] $config Configuration spécifique pour le formulaire * * @author Benjamin Renard * - * @retval LSform Le formulaire crée + * @retval LSform Le formulaire cré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éthode recharge les données d'un formulaire LSform. * - * @param[in] $idForm [required] Identifiant du formulaire a créer + * @param[in] $idForm [required] Identifiant du formulaire a créer * * @author Benjamin Renard * - * @retval boolean true sile formulaire a été rafraichis, false sinon + * @retval boolean true sile formulaire a été 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 à jour les données de l'objet et de l'entré de l'annuaire * - * Met à jour les données de l'objet à partir d'un retour d'un formulaire. + * Met à jour les données de l'objet à partir d'un retour d'un formulaire. * * @param[in] $idForm Identifiant du formulaire d'origine * * @author Benjamin Renard * - * @retval boolean true si la mise à jour a réussi, false sinon + * @retval boolean true si la mise à jour a ré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é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ées retournées par un formulaire * * @param[in] $idForm Identifiant du formulaire d'origine * * @author Benjamin Renard * - * @retval boolean true si les données sont valides, false sinon + * @retval boolean true si les donné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ées d'un attribut * * @param[in] $LSForm Formulaire d'origine - * @param[in] &$attr Attribut à valider + * @param[in] &$attr Attribut à valider * * @author Benjamin Renard * - * @retval boolean true si les données sont valides, false sinon + * @retval boolean true si les donné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éfinition du basedn par défaut if (!isset($test['basedn'])) { $test['basedn']=$GLOBALS['LSsession']->topDn; } - // Définition du message d'erreur + // Dé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énération des valeurs des attributs dé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 à jour les données modifiés dans l'annuaire * * @param[in] $idForm Identifiant du formulaire d'origine * * @author Benjamin Renard * - * @retval boolean true si la mise à jour a réussi, false sinon + * @retval boolean true si la mise à jour a réussi, false sinon */ function submitChange($idForm) { $submitData=array(); @@ -578,8 +610,8 @@ class LSldapObject { * @author Benjamin Renard * * @retval array Tableau : - * - [0] : le premier paramètre - * - [1] : les paramètres suivants + * - [0] : le premier paramètre + * - [1] : les paramè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ême type. * - * Effectue une recherche en fonction des paramètres passé et retourne un + * Effectue une recherche en fonction des paramètres passé et retourne un * tableau d'objet correspond au resultat de la recherche. * * @author Benjamin Renard * * @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è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éfintion des paramè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ères de recherche correspondant au type d'objet à lister if(($nbFilter==1)||(!isset($filter[$i]['attr']))) { - // Filtre sur l'objet souhaité + // Filtre sur l'objet souhaité $sfilter='(&'; $sfilter.=$this -> getObjectFilter(); $sfilter_end=')'; $check_final_dn=true; } - // Initialisation des critères d'une recherche intermédiaire + // Initialisation des critères d'une recherche intermé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é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és for($ii=0;$ii isCompatibleDNs($sbasedn,$basedn))&&($check_final_dn)) continue; } - // Vérification de la compatibilité du basedn de la recherche et du basedn générale + // Vérification de la compatibilité du basedn de la recherche et du basedn géné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édiaire) if($filter[$i]['attr']){ for($iii=0;$iii 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évu mais d'un retour nul de la précédente recherche else if(empty($new_attrs)) { - // retour vide et arrêt de la recherche + // retour vide et arrê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é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ère une liste d'attributs if(isset($filter[$i]['attr'])) { for($ii=0;$ii 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 * @@ -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ètre. Si la valeur est inconnue, la valeur retourné est ' '. * tableau d'objet correspond au resultat de la recherche. * * Valeurs possibles : @@ -846,9 +878,9 @@ class LSldapObject { * * @author Benjamin Renard * - * @param[in] $val string Le nom de la valeur demandée + * @param[in] $val string Le nom de la valeur demandée * - * @retval mixed la valeur demandé ou ' ' si celle-ci est inconnue. + * @retval mixed la valeur demandé 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ême type * * @author Benjamin Renard * @@ -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 à partir de la * configuration de l'objet et la valeur de son attribut rdn. * * @author Benjamin Renard @@ -938,11 +970,11 @@ class LSldapObject { } /** - * Retourne qui est l'utilisateur par rapport à cet object + * Retourne qui est l'utilisateur par rapport à cet object * * @author Benjamin Renard * - * @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ême ou un simple utilisateur */ function whoami() { if (!$this -> _whoami) @@ -967,7 +999,7 @@ class LSldapObject { * * @author Benjamin Renard * - * @retval boolean True si l'objet à été supprimé, false sinon + * @retval boolean True si l'objet à été supprimé, 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)) {