diff --git a/public_html/includes/class/class.LSform.php b/public_html/includes/class/class.LSform.php index fc0e5402..45e827d3 100644 --- a/public_html/includes/class/class.LSform.php +++ b/public_html/includes/class/class.LSform.php @@ -499,6 +499,28 @@ class LSform { } } + /** + * Check if form has a specified element (by attr name) + * + * @param[in] $attr string The element/attribute name + * + * @retval boolean + **/ + public function hasElement($name) { + return isset($this -> elements[$name]); + } + + /** + * Check if a specified element (by attr name) is freezed + * + * @param[in] $attr string The element/attribute name + * + * @retval boolean + **/ + public function isFreeze($name) { + return isset($this -> elements[$name]) && $this -> elements[$name] -> isFreeze($name); + } + /** * Ajoute une règle sur un élément du formulaire * diff --git a/public_html/includes/class/class.LSldapObject.php b/public_html/includes/class/class.LSldapObject.php index 09a2181b..4c58fef6 100644 --- a/public_html/includes/class/class.LSldapObject.php +++ b/public_html/includes/class/class.LSldapObject.php @@ -403,7 +403,9 @@ class LSldapObject { else { $LSform=false; } - foreach($this -> attrs as $attr) { + foreach($this -> attrs as $attr_name => $attr) { + if ($LSform && (!$LSform -> hasElement($attr_name) || $LSform -> isFreeze($attr_name))) + continue; $attr_values = $attr -> getValue(); if (!$attr -> isValidate()) { if($attr -> isUpdate()) {