- LSldap : Ajout de debug
authorBenjamin Renard <brenard@easter-eggs.com>
Tue, 14 Oct 2008 13:02:03 +0000 (13:02 +0000)
committerBenjamin Renard <brenard@easter-eggs.com>
Tue, 14 Oct 2008 13:02:03 +0000 (13:02 +0000)
- LSldapObject : Modification des triggers after_modify et before_modify des
attributs pour les rendre multiple si nécéssaire

trunk/includes/class/class.LSldap.php
trunk/includes/class/class.LSldapObject.php

index 5a96ff1..6e43d42 100644 (file)
@@ -290,9 +290,11 @@ class LSldap {
       LSdebug('drop : <pre>'.print_r($dropAttr,true).'</pre>');
 
       if ($new) {
+        LSdebug('LSldap :: add()');
         $ret = $this -> cnx -> add($entry);
       }
       else {
+        LSdebug('LSldap :: update()');
         $ret = $entry -> update();
       }
       
index c2daa0b..bc3c30f 100644 (file)
@@ -319,15 +319,23 @@ class LSldapObject {
       // $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;
-            }
+          if (!is_array($this -> config['attrs'][$attr_name]['before_modify'])) {
+            $funcs = array($this -> config['attrs'][$attr_name]['before_modify']);
           }
           else {
-            $GLOBALS['LSerror'] -> addErrorCode(308,array('func' => $this -> config['attrs'][$attr_name]['before_modify'],'attr' => $attr_name));
-            return;
+            $funcs = $this -> config['attrs'][$attr_name]['before_modify'];
+          }
+          foreach($funcs as $func) {
+            if(function_exists($func)) {
+              if(!$func($this)) {
+                $GLOBALS['LSerror'] -> addErrorCode(309,array('func' => $func,'attr' => $attr_name));
+                return;
+              }
+            }
+            else {
+              $GLOBALS['LSerror'] -> addErrorCode(308,array('func' => $func,'attr' => $attr_name));
+              return;
+            }
           }
         }
       }
@@ -357,15 +365,23 @@ class LSldapObject {
       // $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;
-            }
+          if (!is_array($this -> config['attrs'][$attr_name]['after_modify'])) {
+            $funcs = array($this -> config['attrs'][$attr_name]['after_modify']);
           }
           else {
-            $GLOBALS['LSerror'] -> addErrorCode(306,array('func' => $this -> config['after_modify'],'attr' => $attr_name));
-            return;
+            $funcs = $this -> config['attrs'][$attr_name]['after_modify'];
+          }
+          foreach($funcs as $func) {
+            if(function_exists($func)) {
+              if(!$func($this)) {
+                $GLOBALS['LSerror'] -> addErrorCode(307,array('func' => $func,'attr' => $attr_name));
+                return;
+              }
+            }
+            else {
+              $GLOBALS['LSerror'] -> addErrorCode(306,array('func' => $func,'attr' => $attr_name));
+              return;
+            }
           }
         }
       }