Code

Fixed Ogroup Copy & Paste for workstation startup
[gosa.git] / plugins / gofon / conference / class_phoneConferenceGeneric.inc
index b277a3b4167e40b2d49c8e1e0455eda1c30765e4..cd62cf5c5d54f99be6d58a4c6289d588dc2bbedd 100644 (file)
@@ -1,22 +1,22 @@
 <?php
 /*
-  This code is part of GOsa (https://gosa.gonicus.de)
-  Copyright (C) 2003  Cajus Pollmeier
+   This code is part of GOsa (https://gosa.gonicus.de)
+   Copyright (C) 2003  Cajus Pollmeier
 
-  This program is free software; you can redistribute it and/or modify
-  it under the terms of the GNU General Public License as published by
-  the Free Software Foundation; either version 2 of the License, or
-  (at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
 
-  This program is distributed in the hope that it will be useful,
-  but WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-  GNU General Public License for more details.
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-  You should have received a copy of the GNU General Public License
-  along with this program; if not, write to the Free Software
-  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-*/
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
 
 class conference extends plugin
 {
@@ -26,37 +26,46 @@ class conference extends plugin
   var $base                              = "";
   var $ou                                              = "";
   var $goFonPIN                                = "";
+  var $old_cn         = "";
 
   var $goFonConferenceOption           = "";
-  var $goFonConferenceOption_D         = "";   // Set PIN 
+  var $goFonConferenceOption_P         = "";   // Set PIN 
   var $goFonConferenceOption_r         = "";   // record Conference
   var $goFonConferenceOption_M         = "";   // Play Music opn hold
   var $goFonConferenceOption_s         = "";   // activate menu
   var $goFonConferenceOption_i         = "";   // announce new and leaving user
   var $goFonConferenceOption_c         = "";   // Count User
-  var $goFonConferenceOption_P         = "";   // Conference Type, no PIN/PIN
+  var $goFonConferenceOption_D         = "";   // Conference Type, no PIN/PIN
+
+  var $goFonConferenceOwner    = "";
+
+  var $error_shown = false;
 
   var $goFonConferenceOptionFormat             = "";
   var $goFonConferenceOptionLifetime   = "";
-  var $goFonConferenceOptionNumber             = "";
+  var $telephoneNumber                 = "";
 
   var $old_tele_number         = false;
   var $generate_error           = "";
 
+  var $old_dn;
+
   /* Headpage attributes */
   var $last_dep_sorting= "invalid";
   var $departments= array();
 
+  var $dialog ;
+
   /* attribute list for save action */
-  var $attributes= array("cn", "description", "goFonPIN","goFonConferenceOption_D","goFonConferenceOption_r",
-                                                "goFonConferenceOption_M","goFonConferenceOption_s","goFonConferenceOption_i","goFonConferenceOption_c",
-                                                "goFonConferenceOption_P","goFonConferenceOptionFormat","goFonConferenceOptionLifetime","goFonConferenceOptionNumber");
+  var $attributes= array("cn","base", "description", "goFonPIN","goFonConferenceOption_P","goFonConferenceOption_r",
+      "goFonConferenceOption_M","goFonConferenceOption_s","goFonConferenceOption_i","goFonConferenceOption_c",
+      "goFonConferenceOption_D","goFonConferenceOptionFormat","goFonConferenceOptionLifetime","telephoneNumber","goFonConferenceOwner");
 
   var $objectclasses= array("top", "goFonConference");
 
-  function conference ($config, $dn)
+  function conference ($config, $dn, $plugin= NULL)
   {
-    plugin::plugin($config, $dn);
+    plugin::plugin($config, $dn, $plugin);
     $this->is_account  = TRUE;
     $this->ui                  = get_userinfo();
     $this->dn                  = $dn;
@@ -66,8 +75,8 @@ class conference extends plugin
     /* Set base */
     if ($this->dn == "new"){
       $ui= get_userinfo();
-      if(isset($_SESSION['conferencefilter']['depselect'])){
-        $this->base = $_SESSION['conferencefilter']['depselect'];
+      if(isset($_SESSION['CurrentMainBase'])){
+        $this->base = $_SESSION['CurrentMainBase'];
       }else{
         $this->base= dn2base($ui->dn);
       }
@@ -75,6 +84,10 @@ class conference extends plugin
       $this->base= preg_replace ("/^[^,]+,/", "", $this->dn);
     }
 
+    $ui= get_userinfo();
+    $acl= get_permissions ($ui->dn, $this->ui->subtreeACL);
+    $this->acl= get_module_permission($acl, "conference", $ui->dn);
+    $this->goFonConferenceOwner=$this->ui->dn;
 
     /* Parse Options ... 
      * Parameter|Lifetime|number
@@ -84,45 +97,90 @@ class conference extends plugin
 
       for($i = 0 ; $i < strlen($tmp1[0]);$i++){
         $varname = "goFonConferenceOption_".$tmp1[0][$i];
-        $this->$varname = $tmp1[0][$i];    
+        if($tmp1[0][$i]=="d"){
+          $this->goFonConferenceOption_D = $tmp1[0][$i];    
+        }else{
+          $this->$varname = $tmp1[0][$i];    
+        }
       }
 
       $this->goFonConferenceOptionLifetime  = $tmp1[1];
-      $this->goFonConferenceOptionNumber    = $tmp1[2];
-      $this->old_tele_number                = $tmp1[2];
+      $this->old_tele_number                = $this->telephoneNumber;
     }
+    $this->old_dn = $this->dn;
+    $this->old_cn = $this->cn;
   }
 
   function execute()
   {
-       $this->config->departments    = get_departments($this->dn);
-       $this->config->make_idepartments();
-       $smarty= get_smarty();
-
-       $smarty->assign("goFonConferenceOptions",                   array("P"=>"Conference ",""=>"Conference without PIN"));
-       $smarty->assign("goFonConferenceOptionFormats", array("WAV"=>"Wave","GSM"=>"GSM","WAV49"=>"Wave49"));
-       $smarty->assign("goFonConferenceOption",        $this->goFonConferenceOption_P);
-       
-       foreach ($this->attributes as $val){
-               $smarty->assign("$val", $this->$val);
-               $smarty->assign("$val"."ACL", chkacl($this->acl, "$val"));
-               if(!$this->$val){
-                       $smarty->assign($val."CHK", "");
-               }else{
-                       $smarty->assign($val."CHK", " checked ");
-               }
-       }
-       return($smarty->fetch (get_template_path('generic.tpl', TRUE)));
+    /* Call parent execute */
+    plugin::execute();
+
+    $smarty= get_smarty();
+
+    $smarty->assign("bases" ,$this->config->idepartments);
+    $smarty->assign("base"  ,$this->base);
+
+    $once = true; 
+    foreach($_POST as $name => $value){
+      if(preg_match("/^chooseBase/",$name) && $once){
+        $once = false;
+        $this->dialog = new baseSelectDialog($this->config);
+        $this->dialog->setCurrentBase($this->base);
+      }
+    }
+
+    /* Dialog handling */
+    if(is_object($this->dialog)){
+      /* Must be called before save_object */
+      $this->dialog->save_object();
+
+      if($this->dialog->isClosed()){
+        $this->dialog = false;
+      }elseif($this->dialog->isSelected()){
+        $this->base = $this->dialog->isSelected();
+        $this->dialog= false;
+      }else{
+        return($this->dialog->execute());
+      }
+    }
+
+    $smarty->assign("goFonConferenceOptions",              array("D"=>"Conference ","d"=>"Conference without PIN"));
+    $smarty->assign("goFonConferenceOptionFormats",    array("WAV"=>"Wave","GSM"=>"GSM","WAV49"=>"Wave49"));
+    $smarty->assign("goFonConferenceOption",        $this->goFonConferenceOption_D);
+
+    foreach ($this->attributes as $val){
+      $smarty->assign("$val", $this->$val);
+      $smarty->assign("$val"."ACL", chkacl($this->acl, "$val"));
+      if(!$this->$val){
+        $smarty->assign($val."CHK", "");
+      }else{
+        $smarty->assign($val."CHK", " checked ");
+      }
+    }
+
+    if($_SESSION['js']==1){
+      if($this->goFonConferenceOption_P != "P"){
+        $smarty->assign("goFonPINACL"," disabled ");
+        $smarty->assign("goFonPIN","");
+      }
+      if($this->goFonConferenceOption_r != "r"){
+        $smarty->assign("goFonConferenceOptionFormatACL"," disabled ");
+      }
+    }
+    return($smarty->fetch (get_template_path('generic.tpl', TRUE)));
   }
 
   function remove_from_parent()
   {
-       $ldap= $this->config->get_ldap_link();
-       $ldap->cd ($this->dn);
-       $ldap->recursive_remove();
+    $this->SQL_remove_me(true); 
+
+    $ldap= $this->config->get_ldap_link();
+    $ldap->cd ($this->dn);
+    $ldap->recursive_remove();
 
-       /* Optionally execute a command after we're done */
-       $this->handle_post_events('remove');
+    /* Optionally execute a command after we're done */
+    $this->handle_post_events('remove');
   }
 
 
@@ -131,12 +189,12 @@ class conference extends plugin
   {
     plugin::save_object();
     if(isset($_POST['cn'])){
-      foreach(array("goFonConferenceOption_D","goFonConferenceOption_r","goFonConferenceOption_M","goFonConferenceOption_s",
-            "goFonConferenceOption_i","goFonConferenceOption_c","goFonConferenceOption_P") as $attrs){
-      if(isset($_POST[$attrs])){
-        $this->$attrs = $_POST[$attrs];
-      }else{
-        $this->$attrs = false;
+      foreach(array("goFonConferenceOption_P","goFonConferenceOption_r","goFonConferenceOption_M","goFonConferenceOption_s",
+            "goFonConferenceOption_i","goFonConferenceOption_c","goFonConferenceOption_D","goFonPIN") as $attrs){
+        if(isset($_POST[$attrs])){
+          $this->$attrs = $_POST[$attrs];
+        }else{
+          $this->$attrs = false;
         }
       }
     }
@@ -146,42 +204,70 @@ class conference extends plugin
   /* Check values */
   function check()
   {
-       $message= array();
-  
-  if(empty($this->cn)){
-    $message[] =_("Please enter a name for the conference.");
-  }
-  
-  if(!is_numeric($this->goFonConferenceOptionNumber)){
-    $message[] =_("Only numeric chars are allowed in Number field.");
-  }
+    /* Call common method to give check the hook */
+    $message= plugin::check();
 
-  if(!is_numeric($this->goFonConferenceOptionLifetime)){
-    $message[] =_("Only numbers are allowed in Lifetime.");
-  }
-  $this->SQL_remove_me(false);
-  $this->SQL_add_me(false);
-  if(!empty($this->generate_error)){
-    $message[]=$this->generate_error;
-    $this->generate_error="";
-  }
+    if($this->is_number_used()){
+      $message[] =  $this->is_number_used();
+    }
+
+    if((!empty($this->goFonPIN)||($this->goFonConferenceOption_P=="P"))&&($this->goFonConferenceOption_D=="d")){
+      $message[] =_("You have specified a conference 'without PIN' ... please leave the PIN fields empty.");
+    }
+
+    if((empty($this->goFonPIN))&&($this->goFonConferenceOption_P=="P")&&($this->goFonConferenceOption_D=="D")){
+      $message[]= _("Please enter a PIN.");
+    }
+
+    if(empty($this->cn)){
+      $message[] =_("Please enter a name for the conference.");
+    }
+
+    if(!is_numeric($this->telephoneNumber)){
+      $message[] =_("Only numeric chars are allowed in Number field.");
+    }
+
+    if(!((is_numeric($this->goFonConferenceOptionLifetime))||(empty($this->goFonConferenceOptionLifetime)))){
+      $message[] =_("Only numbers are allowed in Lifetime.");
+    }
+
+    $this->SQL_remove_me(false);
+    $this->SQL_add_me(false);
 
-       return $message;
+    if(!empty($this->generate_error)){
+      $message[]=$this->generate_error;
+      $this->generate_error="";
+    }
+
+    return $message;
   }
 
 
   function SQL_add_me($save){
+
+    if(!isset($_SESSION['config']->data['SERVERS']['FON'])){
+      $this->generate_error = _("There is currently no asterisk server defined. Possibly you are missing a server that handles the asterisk management (goFonServer). Your settings can't be saved to asterisk database.");
+      return(false);
+    }
+  
     // Get Configuration for Mysql database Server
     $a_SETUP = $_SESSION['config']->data['SERVERS']['FON'];
 
     // Connect to DB server
-    $r_con =  @mysql_connect($a_SETUP['SERVER'],$a_SETUP['LOGIN'],$a_SETUP['PASSWORD']);
+    $r_con = false;    
+
+    if(!is_callable("mysql_pconnect")){
+      if(!$this->error_shown){
+        print_red(_("Can't save any changes to asterisk database, there is currently no mysql extension available in your php setup."));
+        $this->error_shown = true;
+      }
+      return(true);
+    }
+    $r_con =  @mysql_pconnect($a_SETUP['SERVER'],$a_SETUP['LOGIN'],$a_SETUP['PASSWORD']);
 
     // Check if we are  connected correctly
     if(!$r_con){
-      $this->generate_error = sprintf(_("The MySQL Server '%s' isn't reachable as user '%s', check GOsa log for mysql error."),
+      $this->generate_error = sprintf(_("The MySQL server '%s' isn't reachable as user '%s', check GOsa log for mysql error."),
           $a_SETUP['SERVER'],$a_SETUP['LOGIN']);
       gosa_log(mysql_error());
       return false;
@@ -196,21 +282,21 @@ class conference extends plugin
       gosa_log(mysql_error());
       return false;
     }
-   
-    if((!empty($this->goFonConferenceOptionNumber))&&($save==true)){
-      
+
+    if((!empty($this->telephoneNumber))&&($save==true)){
+
       $EXT=array();
 
       $parameter  ="";
-      foreach(array("goFonConferenceOption_D","goFonConferenceOption_r","goFonConferenceOption_M","goFonConferenceOption_s",
-            "goFonConferenceOption_i","goFonConferenceOption_c","goFonConferenceOption_P") as $attrs){
+      foreach(array("goFonConferenceOption_P","goFonConferenceOption_r","goFonConferenceOption_M","goFonConferenceOption_s",
+            "goFonConferenceOption_i","goFonConferenceOption_c","goFonConferenceOption_D") as $attrs){
         $parameter .= $this->$attrs;
       }
 
       $i=1;
       $context="GOsa";
       // Set Language to German
-      $EXT[$i]['exten']   =$this->goFonConferenceOptionNumber;
+      $EXT[$i]['exten']   =$this->telephoneNumber;
       $EXT[$i]['context'] = $context;
       $EXT[$i]['priority']= $i;
       $EXT[$i]['app']     ="SetLanguage";
@@ -219,18 +305,18 @@ class conference extends plugin
 
       if($this->goFonConferenceOption_r == "r"){
 
-      // Recordingformat for conference
-      $EXT[$i]['exten']   =$this->goFonConferenceOptionNumber;
-      $EXT[$i]['context'] =$context;
-      $EXT[$i]['priority']= $i;
-      $EXT[$i]['app']     ="Setvar";
-      $EXT[$i]['appdata'] ="MEETME_RECORDINGFORMAT=".$this->goFonConferenceOptionFormat;
-      $i++;      
+        // Recordingformat for conference
+        $EXT[$i]['exten']   =$this->telephoneNumber;
+        $EXT[$i]['context'] =$context;
+        $EXT[$i]['priority']= $i;
+        $EXT[$i]['app']     ="Setvar";
+        $EXT[$i]['appdata'] ="MEETME_RECORDINGFORMAT=".$this->goFonConferenceOptionFormat;
+        $i++;      
 
       }
 
       // Answer Call
-      $EXT[$i]['exten']   =$this->goFonConferenceOptionNumber;
+      $EXT[$i]['exten']   =$this->telephoneNumber;
       $EXT[$i]['context'] =$context;
       $EXT[$i]['priority']=$i;
       $EXT[$i]['app']     ="answer";
@@ -238,11 +324,16 @@ class conference extends plugin
       $i++;      
 
       // Start Conference 
-      $EXT[$i]['exten']   =$this->goFonConferenceOptionNumber;
+      $EXT[$i]['exten']   =$this->telephoneNumber;
       $EXT[$i]['context'] =$context;
       $EXT[$i]['priority']=$i;
       $EXT[$i]['app']     ="MeetMe";
-      $EXT[$i]['appdata'] =$this->goFonConferenceOptionNumber."|".$parameter."|".$this->goFonPIN;
+
+      if(empty($this->goFonPIN)) {
+        $EXT[$i]['appdata'] =$this->telephoneNumber."|".$parameter;
+      }else{
+        $EXT[$i]['appdata'] =$this->telephoneNumber."|".$parameter."|".$this->goFonPIN;
+      }
       $i++; 
 
       // Start Conference 
@@ -250,12 +341,12 @@ class conference extends plugin
       $EXT[$i]['context'] =$context;
       $EXT[$i]['priority']=1;
       $EXT[$i]['app']     ="Goto";
-      $EXT[$i]['appdata'] =$this->goFonConferenceOptionNumber."|1";
+      $EXT[$i]['appdata'] =$this->telephoneNumber."|1";
       $SQL=array();
-    
+
       foreach($EXT as $keytop => $valtop){
-      $s_keys = "";
-      $s_values = ""; 
+        $s_keys = "";
+        $s_values = ""; 
         foreach($valtop as $key=>$val){
           $s_keys   .="`".$key."`,";
           $s_values .="'".$val."',";
@@ -268,20 +359,27 @@ class conference extends plugin
         mysql_query($sqlsyn);
       }
     } 
-    
 
 
+    @mysql_close($r_con);
     return(true);
   }
 
   function SQL_remove_me($save){
+    if(!is_callable("mysql_pconnect")){
+      if(!$this->error_shown){
+        print_red(_("Can't save any changes to asterisk database, there is currently no mysql extension available in your php setup."));
+        $this->error_shown = true;
+      }
+      return(true);
+    }
 
     if($this->old_tele_number){
       // Get Configuration for Mysql database Server
       $a_SETUP = $_SESSION['config']->data['SERVERS']['FON'];
 
       // Connect to DB server
-      $r_con =  @mysql_connect($a_SETUP['SERVER'],$a_SETUP['LOGIN'],$a_SETUP['PASSWORD']);
+      $r_con =  @mysql_pconnect($a_SETUP['SERVER'],$a_SETUP['LOGIN'],$a_SETUP['PASSWORD']);
 
       // Check if we are  connected correctly
       if(!$r_con){
@@ -301,13 +399,18 @@ class conference extends plugin
         return false;
       }
 
-      $SQL = "DELETE FROM ".$a_SETUP['EXT_TABLE']." WHERE (exten= '".$this->old_tele_number."') OR (exten='".$this->goFonConferenceOptionNumber."')";
-      
+      $SQL = "DELETE FROM ".$a_SETUP['EXT_TABLE']." 
+      WHERE   (exten='".$this->old_tele_number."') 
+        OR    (exten='".$this->telephoneNumber."') 
+        OR    (exten='".$this->cn."')  
+        OR    (exten='".$this->old_cn."')";
+
       if($save){
         @mysql_query($SQL);
       } 
 
     }//ENDE  old num availiable ...
+    @mysql_close($r_con);
     return(true);
   }
 
@@ -328,15 +431,12 @@ class conference extends plugin
       }
     }
 
-    foreach($this->phoneNumbers as $num){
-      if(!isset($this->cn)) $this->cn = "";
-
-      if((isset($numbers[$num]))&&(($numbers[$num]['uid'][0]!=$this->uid))){
-        if(isset($numbers[$num]['uid'][0])){
-          return sprintf(_("The specified telephonenumber '%s' is already assigned to '%s'."),$num,$numbers[$num]['uid'][0]);
-        }else{
-          return sprintf(_("The specified telephonenumber '%s' is already assigned to '%s'."),$num,$numbers[$num]['cn'][0]);
-        }
+    $num = $this->telephoneNumber;
+    if((isset($numbers[$num]))&&(($numbers[$num]['cn'][0]!=$this->old_cn))){
+      if(isset($numbers[$num]['uid'][0])){
+        return sprintf(_("The specified telephonenumber '%s' is already assigned to '%s'."),$num,$numbers[$num]['uid'][0]);
+      }else{
+        return sprintf(_("The specified telephonenumber '%s' is already assigned to '%s'."),$num,$numbers[$num]['cn'][0]);
       }
     }
   }
@@ -345,45 +445,71 @@ class conference extends plugin
 
 
 
-
   /* Save to LDAP */
   function save()
   {
-       plugin::save();
 
-  $this->SQL_remove_me(true);
-  $this->SQL_add_me(true);
+    if((!isset($this->attrs['goFonPIN']))){
+      $pin_use = false;
+    }else{
+      $pin_use = true;
+    }
 
-  $this->attrs['goFonConferenceOption']="";
-  foreach(array("goFonConferenceOption_D","goFonConferenceOption_r","goFonConferenceOption_M","goFonConferenceOption_s",
-            "goFonConferenceOption_i","goFonConferenceOption_c","goFonConferenceOption_P","goFonConferenceOptionFormat") as $attrs){
-    $this->attrs['goFonConferenceOption'] .= $this->$attrs;
-    unset($this->attrs[$attrs]);         
-  }
+    plugin::save();
+
+    if(empty($this->old_tele_number)){
+      $this->old_tele_number= $this->telephoneNumber;
+    }
+
+    $this->SQL_remove_me(true);
+    $this->SQL_add_me(true);
+
+    if(empty($this->goFonConferenceOption_P)){
+      if($pin_use){
+        $this->attrs['goFonPIN']=array();
+      }else{
+        unset($this->attrs['goFonPIN']);
+      }
+    }
+    $this->attrs['goFonConferenceOption']="";
+    foreach(array("goFonConferenceOption_P","goFonConferenceOption_r","goFonConferenceOption_M","goFonConferenceOption_s",
+          "goFonConferenceOption_i","goFonConferenceOption_c","goFonConferenceOption_D","goFonConferenceOptionFormat") as $attrs){
+      $this->attrs['goFonConferenceOption'] .= $this->$attrs;
+      unset($this->attrs[$attrs]);         
+    }
+
+    $this->attrs['goFonConferenceOption'].="|".$this->goFonConferenceOptionLifetime;
+    unset($this->attrs['goFonConferenceOptionLifetime']);
+
+    /* Write back to ldap */
+
+    unset($this->attrs['base']);
+
+    foreach($this->attributes as $atr){
+      if(chkacl($this->acl, $atr)!=""){
+        unset($this->attrs[$atr]);
+      }
+    }
+
+    $ldap= $this->config->get_ldap_link();
+    $ldap->cd($this->config->current['BASE']);
+    $ldap->cat($this->dn, array('dn'));
+
+    if ($ldap->count()){
+      $ldap->cd($this->dn);
+      $this->cleanup();
+      $ldap->modify ($this->attrs); 
+      $this->handle_post_events('modify');
+    } else {
+      $ldap->create_missing_trees(preg_replace('/^[^,]+,/', '', $this->dn));
+      $ldap->cd($this->dn);
+      $ldap->add($this->attrs);
+      $this->handle_post_events('add');
+    }
+    show_ldap_error($ldap->get_error(), _("Saving phone conference failed"));
 
-  $this->attrs['goFonConferenceOption'].="|".$this->goFonConferenceOptionLifetime;
-  unset($this->attrs['goFonConferenceOptionLifetime']);
-
-  $this->attrs['goFonConferenceOption'].="|".$this->goFonConferenceOptionNumber;
-  unset($this->attrs['goFonConferenceOptionNumber']);
-       
-
-  /* Write back to ldap */
-       $ldap= $this->config->get_ldap_link();
-       $ldap->cat($this->dn);
-       $a= $ldap->fetch();
-       $ldap->cd($this->dn);
-       if (count($a)){
-               $ldap->modify($this->attrs);
-               $this->handle_post_events('modify');
-       } else {
-               $ldap->add($this->attrs);
-               $this->handle_post_events('add');
-       }
-       show_ldap_error($ldap->get_error());
-
-       /* Optionally execute a command after we're done */
-       $this->postcreate();
+    /* Optionally execute a command after we're done */
+    $this->postcreate();
   }
 
 }