Code

Fixed self edit mode
[gosa.git] / plugins / personal / environment / class_logonManagementDialog.inc
index 819cee44aa57150d33d6868f5ffa64d581551b09..98ce41ff312a27e1e7454f321ab4c79e3ff2337b 100644 (file)
@@ -8,27 +8,121 @@ class logonManagementDialog extends plugin
 
   /* attribute list for save action */
   var $ignore_account       = TRUE;
-  var $attributes           = array();
+  var $attributes           = array("LogonName","LogonPriority","LogonLast","LogonOverload","LogonData","LogonDescription");
   var $objectclasses        = array("whatever");
   var $use_existing         = false;  
 
-  var $baseDir              = "../kioskProfiles/";
-  var $filePrefix           = ".kioskProfile";
+  var $LogonName        ="";  // Name for the LogonScript
+  var $LogonPriority    ="";  // Priority defines the order in which the scripts will be processed 
+  var $LogonLast        ="";  // Is this script marked as the last, all following scripts will be skipped
+  var $LogonOverload    ="";  // If Overload is activated this script is overlaodable by a group script with same prio
+  var $LogonData        ="";  // The script itself
+  var $LogonDescription ="";
+    
+  var $nameIsEditable = true;
 
-  function logonManagementDialog ($config, $dn= NULL,$use_existing=false )
+  var $real_LogonName = "";
+
+  function logonManagementDialog ($config, $dn= NULL,$data=false)
   {
-    $this->use_existing = $use_existing;
     plugin::plugin ($config, $dn);
+    
+    if($data){
+      $this->LogonName        = $data['LogonName'];
+      $this->LogonPriority    = $data['LogonPriority'];
+      $this->LogonOverload    = $data['LogonOverload'];
+      $this->LogonLast        = $data['LogonLast'];
+      $this->LogonData        = $data['LogonData'];
+      $this->LogonDescription = $data['LogonDescription'];
+      $this->nameIsEditable   = false;
+      $this->real_LogonName   = $data['LogonName'];
+    }
   }
 
   function execute()
   {
+       /* Call parent execute */
+       plugin::execute();
+
     $smarty= get_smarty();
     $display= "";
+
+    if((isset($_POST['StartImport']))&&(isset($_FILES['importFile']))){
+      $this->LogonData = file_get_contents($_FILES['importFile']['tmp_name']);
+      @unlink($_FILES['importFile']['tmp_name']);
+    }
+
+    foreach($this->attributes as $attr){
+      $smarty->assign($attr,$this->$attr);
+      if($this->$attr){
+        $smarty->assign($attr."CHK"," checked ");
+      }else{
+        $smarty->assign($attr."CHK","");
+      }
+    }
+    $prios=array(1,2,3,4,5,6,7,8,9,10);
+    $smarty->assign("LogonPrioritys",$prios);
+    $smarty->assign("LogonPriorityKeys",$prios);
+
+    if(!$this->nameIsEditable){
+      $smarty->assign("LogonNameACL"," disabled ");
+    }else{
+      $smarty->assign("LogonNameACL","");
+    }
+  
+
     $display.= $smarty->fetch(get_template_path('logonManagement.tpl', TRUE,dirname(__FILE__)));
     return($display);
   }
 
+  function save_object()
+  {
+    if(isset($_POST['dialogissubmitted'])){
+      foreach($this->attributes as $attr){
+        if(isset($_POST[$attr])){
+          $this->$attr = stripslashes($_POST[$attr]); 
+        }else{
+          $this->$attr = false;
+        }
+      }
+    }
+  }
+
+  function check()
+  {
+    /* Call common method to give check the hook */
+    $message= plugin::check();
+  
+    if(preg_match("/[^a-z]/",$this->LogonName)){
+      $message[] = _("Specified name is invalid.");
+    } 
+
+    if(empty($this->LogonName)){
+      $message[] = _("Please specify a valid script name.");
+    }
+
+    if(preg_match("/[^a-z0-9,\.-;:_\(\)!\? ]/i",$this->LogonDescription)){
+      $message[] = _("Specified description contains invalid characters.");
+    }
+
+    return $message;
+  }
+
+
+  function save()
+  {
+    $a_return= array();
+    foreach($this->attributes as $attr){
+      $a_return[$attr]=$this->$attr;
+    }  
+
+    if(!$this->nameIsEditable){
+      $a_return['LogonName']=$this->real_LogonName;
+    }
+
+    return($a_return); 
+  }
+
 }
 // vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
 ?>