Code

Updated a couple of values
[gosa.git] / gosa-core / include / class_plugin.inc
index f983a9d240397e2824cf60b5d2defcbb8b2d8738..31d5b4bafd80e2c155c2852626394c08e60b80f1 100644 (file)
@@ -180,7 +180,7 @@ class plugin
       /* Set the template flag according to the existence of objectClass
          gosaUserTemplate */
       if (isset($this->attrs['objectClass'])){
-        if (in_array ("gosaUserTemplate", $this->attrs['objectClass'])){
+        if (in_array_ics ("gosaUserTemplate", $this->attrs['objectClass'])){
           $this->is_template= TRUE;
           @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__,
               "found", "Template check");
@@ -273,7 +273,7 @@ class plugin
     /* Remove objectClasses from entry */
     $ldap->cd($this->dn);
     $this->attrs= array();
-    $this->attrs['objectClass']= array_remove_entries($this->objectclasses,$oc);
+    $this->attrs['objectClass']= array_remove_entries_ics($this->objectclasses,$oc);
 
     /* Unset attributes from entry */
     foreach ($this->attributes as $val){
@@ -636,8 +636,11 @@ class plugin
       if (check_command($command)){
         @DEBUG (DEBUG_SHELL, __LINE__, __FUNCTION__, __FILE__,
             $command, "Execute");
-
-        exec($command);
+        exec($command,$arr);
+        foreach($arr as $str){
+          @DEBUG (DEBUG_SHELL, __LINE__, __FUNCTION__, __FILE__,
+            $command, "Result: ".$str);
+        }
       } else {
         $message= msgPool::cmdnotfound("POSTCREATE", get_class($this));
         msg_dialog::display(_("Error"), $message, ERROR_DIALOG);
@@ -674,7 +677,11 @@ class plugin
 
       if (check_command($command)){
         @DEBUG (DEBUG_SHELL, __LINE__, __FUNCTION__, __FILE__,$command, "Execute");
-        exec($command);
+        exec($command,$arr);
+        foreach($arr as $str){
+          @DEBUG (DEBUG_SHELL, __LINE__, __FUNCTION__, __FILE__,
+            $command, "Result: ".$str);
+        }
       } else {
         $message= msgPool::cmdnotfound("POSTMODIFY", get_class($this));
         msg_dialog::display(_("Error"), $message, ERROR_DIALOG);
@@ -712,7 +719,11 @@ class plugin
         @DEBUG (DEBUG_SHELL, __LINE__, __FUNCTION__, __FILE__,
             $command, "Execute");
 
-        exec($command);
+        exec($command,$arr);
+        foreach($arr as $str){
+          @DEBUG (DEBUG_SHELL, __LINE__, __FUNCTION__, __FILE__,
+            $command, "Result: ".$str);
+        }
       } else {
         $message= msgPool::cmdnotfound("POSTREMOVE", get_class($this));
         msg_dialog::display(_("Error"), $message, ERROR_DIALOG);
@@ -898,6 +909,9 @@ class plugin
 
     /* Try to move the source entry to the destination position */
     $ldap = $this->config->get_ldap_link();
+    $ldap->cd($this->config->current['BASE']);
+    $ldap->create_missing_trees(preg_replace("/^[^,]+,/","",$dst_dn));
+
     if (!$ldap->rename_dn($src_dn,$dst_dn)){
       msg_dialog::display(_("LDAP error"), msgPool::ldaperror($ldap->get_error(), $src_dn, "", get_class()));
       return(FALSE);
@@ -1204,24 +1218,24 @@ class plugin
     }
 
     /* Get configuration from gosa.conf */
-    $tmp = $this->config->current;
+    $config = $this->config;
 
     /* Create lokal ldap connection */
     $ldap= $this->config->get_ldap_link();
     $ldap->cd($this->config->current['BASE']);
 
     /* check if there are special server configurations for snapshots */
-    if(!isset($tmp['SNAPSHOT_SERVER'])){
+    if($config->get_cfg_value("snapshot_server") == ""){
 
       /* Source and destination server are both the same, just copy source to dest obj */
       $ldap_to      = $ldap;
       $snapldapbase = $this->config->current['BASE'];
 
     }else{
-      $server         = $tmp['SNAPSHOT_SERVER'];
-      $user           = $tmp['SNAPSHOT_USER'];
-      $password       = $tmp['SNAPSHOT_PASSWORD'];
-      $snapldapbase   = $tmp['SNAPSHOT_BASE'];
+      $server         = $config->get_cfg_value("snapshot_server");
+      $user           = $config->get_cfg_value("snapshot_user");
+      $password       = $config->get_cfg_value("snapshot_password");
+      $snapldapbase   = $config->get_cfg_value("snapshot_base");
 
       $ldap_to        = new ldapMultiplexer(new LDAP($user,$password, $server));
       $ldap_to -> cd($snapldapbase);
@@ -1240,7 +1254,7 @@ class plugin
 
       /* Collect some infos */
       $base           = $this->config->current['BASE'];
-      $snap_base      = $tmp['SNAPSHOT_BASE'];
+      $snap_base      = $config->get_cfg_value("snapshot_base");
       $base_of_object = preg_replace ('/^[^,]+,/i', '', $this->dn);
       $new_base       = preg_replace("/".normalizePreg($base)."$/","",$base_of_object).$snap_base;
 
@@ -1302,31 +1316,28 @@ class plugin
      There will also be some errors psoted, if the configuration failed */
   function snapshotEnabled()
   {
-    $tmp = $this->config->current;
-    if(isset($tmp['ENABLE_SNAPSHOT'])){
-      if (preg_match("/^true$/i", $tmp['ENABLE_SNAPSHOT']) || preg_match("/yes/i", $tmp['ENABLE_SNAPSHOT'])){
-
-        /* Check if the snapshot_base is defined */
-        if(!isset($tmp['SNAPSHOT_BASE'])){
-          msg_dialog::display(_("Configuration error"), sprintf(_("The snapshot functionality is enabled, but the required variable '%s' is not set."),"SNAPSHOT_BASE"), ERROR_DIALOG);
-          return(FALSE);
-        }
-
-        /* check if there are special server configurations for snapshots */
-        if(isset($tmp['SNAPSHOT_SERVER'])){
-
-          /* check if all required vars are available to create a new ldap connection */
-          $missing = "";
-          foreach(array("SNAPSHOT_SERVER","SNAPSHOT_USER","SNAPSHOT_PASSWORD","SNAPSHOT_BASE") as $var){
-            if(!isset($tmp[$var])){
-              $missing .= $var." ";
-              msg_dialog::display(_("Configuration error"), sprintf(_("The snapshot functionality is enabled, but the required variable '%s' is not set."), $missing), ERROR_DIALOG);
-              return(FALSE);
-            }
-          }
-        }
-        return(TRUE);
-      }
+    $config = $this->config;
+    if($config->get_cfg_value("enable_snapshot") == "true"){
+           /* Check if the snapshot_base is defined */
+           if ($config->get_cfg_value("snapshot_base") == ""){
+                   msg_dialog::display(_("Configuration error"), sprintf(_("The snapshot functionality is enabled, but the required variable '%s' is not set."),"SNAPSHOT_BASE"), ERROR_DIALOG);
+                   return(FALSE);
+           }
+
+           /* check if there are special server configurations for snapshots */
+           if ($config->get_cfg_value("snapshot_server") != ""){
+
+                   /* check if all required vars are available to create a new ldap connection */
+                   $missing = "";
+                   foreach(array("snapshot_server","snapshot_user","snapshot_password","snapshot_base") as $var){
+                           if($config->get_cfg_value($var) == ""){
+                                   $missing .= $var." ";
+                                   msg_dialog::display(_("Configuration error"), sprintf(_("The snapshot functionality is enabled, but the required variable '%s' is not set."), $missing), ERROR_DIALOG);
+                                   return(FALSE);
+                           }
+                   }
+           }
+           return(TRUE);
     }
     return(FALSE);
   }
@@ -1509,10 +1520,6 @@ class plugin
     $ui = get_userinfo();
     $this->parent = $parent;
 
-    if(!isset($this->acl_module)){
-      return("VERDAMMT");
-    }
-
     foreach($_POST as $name => $value){
 
       /* Create a new snapshot, display a dialog */
@@ -1698,6 +1705,8 @@ class plugin
     /* Add current base */      
     if(isset($this->base) && isset($this->config->idepartments[$this->base])){
       $deps[$this->base] = $this->config->idepartments[$this->base];
+    }elseif(strtolower($this->dn) == strtolower($this->config->current['BASE'])){
+
     }else{
       trigger_error("Cannot return list of departments, no default base found in class ".get_class($this).". ".$this->base);
     }