- LSldapObject & LSattribute : Ajout du support des triggers before_create et after_c...
[ldapsaisie.git] / trunk / includes / class / class.LSldapObject.php
index b10f000..8c8bb95 100644 (file)
@@ -558,6 +558,18 @@ class LSldapObject {
       if($dn) {
         $this -> dn=$dn;
         LSdebug($submitData);
+        if ($new) {
+          if (!$this -> fireEvent('before_create')) {
+            LSerror :: addErrorCode('LSldapObject_20');
+            return;
+          }
+          foreach ($submitData as $attr_name => $attr) {
+            if (!$this -> attrs[$attr_name] -> fireEvent('before_create')) {
+              LSerror :: addErrorCode('LSldapObject_20');
+              return;
+            }
+          }
+        }
         if (!LSldap :: update($this -> getType(),$dn, $submitData)) {
           return;
         }
@@ -566,6 +578,12 @@ class LSldapObject {
             LSerror :: addErrorCode('LSldapObject_21');
             return;
           }
+          foreach ($submitData as $attr_name => $attr) {
+            if (!$this -> attrs[$attr_name] -> fireEvent('after_create')) {
+              LSerror :: addErrorCode('LSldapObject_21');
+              return;
+            }
+          }
         }
         return true;
       }
@@ -1893,8 +1911,9 @@ LSerror :: defineError('LSldapObject_19',
 _("LSldapObject : Error during actions to be executed after deleting the objet.")
 );
 
-// 20 : not used
-
+LSerror :: defineError('LSldapObject_20',
+_("LSldapObject : Error during the actions to be executed before creating the object.")
+);
 LSerror :: defineError('LSldapObject_21',
 _("LSldapObject : Error during the actions to be executed after creating the object. It was created anyway.")
 );