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()) {