Code

Updated terminal copy & paste
[gosa.git] / plugins / admin / ogroups / class_termgroup.inc
index ffd6eb115ceea23242a810c5b56e6382b0046d4a..2c759829e891250265451d489ef753d79655277b 100644 (file)
@@ -25,6 +25,8 @@ class termgroup extends plugin
   var $attributes     = array("gotoMode","gotoSyslogServer", "gotoNtpServer");
   var $objectclasses  = array("gotoWorkstationTemplate");
   var $CopyPasteVars  = array("gotoNtpServers","modes","inheritTimeServer","members");
+  var $view_logged    = FALSE;
+
 
   function termgroup ($config, $dn= NULL, $parent= NULL)
   {
@@ -95,8 +97,6 @@ class termgroup extends plugin
         unset($this->gotoNtpServers[$key]);
       }
     }
-
-
   }
 
   function check()
@@ -129,6 +129,7 @@ class termgroup extends plugin
     $ldap->cd($this->orig_dn);
     $ldap->modify($this->attrs);
     $this->handle_post_events("remove");
+    new log("remove","ogroups/".get_class($this),$this->dn,array_keys($this->attrs),$ldap->get_error());
   }
 
 
@@ -136,7 +137,7 @@ class termgroup extends plugin
   {
     /* Get required informations */
     $og     = $this->parent->by_object['ogroup'];
-    $allobs = $og->allobjects;
+    $allobs = $og->objcache;
 
     /* Get correct value for FAIstate */
     $action = $this->mapActions[$act];
@@ -146,7 +147,7 @@ class termgroup extends plugin
     $ldap->cd ($this->config->current['BASE']);
 
     /* Foreach member of mthis ogroup  ... */
-    foreach($og->mem  as $key ){
+    foreach($og->member  as $key ){
   
       /* check objectClasses and create attributes array */
       $attrs = array("FAIstate"=>$action);  
@@ -165,12 +166,6 @@ class termgroup extends plugin
         $ldap->cd ($key);
         $ldap->modify($attrs);
         show_ldap_error($ldap->get_error(),sprintf(_("Setting action state (FAIstate) failed for object '%s', value was '%s'."),$key,$action));
-        
-        if(!preg_match("/success/i",$ldap->get_error())) {
-          gosa_log("FAILED !! Updating FAIstate to '".$action."' : ".$key);
-        }else{
-          gosa_log("OK.  Updating FAIstate to '".$action."' : ".$key);
-        }
       }
     }
   }
@@ -180,6 +175,10 @@ class termgroup extends plugin
     /* Call parent execute */
     plugin::execute();
 
+    if(!$this->view_logged){
+      $this->view_logged = TRUE;
+      new log("view","ogroups/".get_class($this),$this->dn);
+    }
 
     /*************** 
       Handle requested action
@@ -369,6 +368,12 @@ class termgroup extends plugin
     $this->cleanup();
     $ldap->modify ($this->attrs);
 
+    if($this->initially_was_account){
+      new log("modify","ogroups/".get_class($this),$this->dn,array_keys($this->attrs),$ldap->get_error());
+    }else{
+      new log("create","ogroups/".get_class($this),$this->dn,array_keys($this->attrs),$ldap->get_error());
+    }
+
     if(!$this->didAction){
       $this->handle_post_events("modify");
     }
@@ -383,7 +388,7 @@ class termgroup extends plugin
           "plDescription" => _("System group"),
           "plSelfModify"  => FALSE,
           "plDepends"     => array(),
-          "plPriority"    => 0,
+          "plPriority"    => 5,
           "plSection"     => array("administration"),
           "plCategory"    => array("ogroups"),
           "plProvidedAcls"=> array(
@@ -394,8 +399,33 @@ class termgroup extends plugin
           ));
   }
 
+  function PrepareForCopyPaste($source)
+  {
+    /* Create used ntp server array */
+    $this->gotoNtpServer= array();
 
+    if(isset($source['gotoNtpServer'])){
+      $this->inheritTimeServer = false;
+      unset($source['gotoNtpServer']['count']);
+      foreach($source['gotoNtpServer'] as $server){
+        $this->gotoNtpServer[$server] = $server;
+      }
+    }
 
+    /* Set inherit checkbox state */
+    if(in_array("default",$this->gotoNtpServer)){
+      $this->inheritTimeServer = true;
+      $this->gotoNtpServer=array();
+    }
+
+    /* Create available ntp options */
+    $this->gotoNtpServers = $this->config->data['SERVERS']['NTP'];
+    foreach($this->gotoNtpServers as $key => $server){
+      if($server == "default"){
+        unset($this->gotoNtpServers[$key]);
+      }
+    }
+  }
 }
 
 // vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler: