1 <?php
2 class logonManagementDialog extends plugin
3 {
4 /* CLI vars */
5 var $cli_summary = "Manage server basic objects";
6 var $cli_description = "Some longer text\nfor help";
7 var $cli_parameters = array("eins" => "Eins ist toll", "zwei" => "Zwei ist noch besser");
9 /* attribute list for save action */
10 var $ignore_account = TRUE;
11 var $attributes = array("LogonName","LogonPriority","LogonLast","LogonOverload","LogonData","LogonDescription");
12 var $objectclasses = array("whatever");
13 var $use_existing = false;
15 var $LogonName =""; // Name for the LogonScript
16 var $LogonPriority =""; // Priority defines the order in which the scripts will be processed
17 var $LogonLast =""; // Is this script marked as the last, all following scripts will be skipped
18 var $LogonOverload =""; // If Overload is activated this script is overlaodable by a group script with same prio
19 var $LogonData =""; // The script itself
20 var $LogonDescription ="";
22 var $nameIsEditable = true;
24 var $real_LogonName = "";
26 function logonManagementDialog ($config, $dn= NULL,$data=false)
27 {
28 plugin::plugin ($config, $dn);
30 if($data){
31 $this->LogonName = $data['LogonName'];
32 $this->LogonPriority = $data['LogonPriority'];
33 $this->LogonOverload = $data['LogonOverload'];
34 $this->LogonLast = $data['LogonLast'];
35 $this->LogonData = $data['LogonData'];
36 $this->LogonDescription = $data['LogonDescription'];
37 $this->nameIsEditable = false;
38 $this->real_LogonName = $data['LogonName'];
39 }
40 }
42 function execute()
43 {
44 /* Call parent execute */
45 plugin::execute();
47 $smarty= get_smarty();
48 $display= "";
50 if((isset($_POST['StartImport']))&&(isset($_FILES['importFile']))){
51 $this->LogonData = file_get_contents($_FILES['importFile']['tmp_name']);
52 @unlink($_FILES['importFile']['tmp_name']);
53 }
55 foreach($this->attributes as $attr){
56 $smarty->assign($attr,$this->$attr);
57 if($this->$attr){
58 $smarty->assign($attr."CHK"," checked ");
59 }else{
60 $smarty->assign($attr."CHK","");
61 }
62 }
63 $prios=array(1,2,3,4,5,6,7,8,9,10);
64 $smarty->assign("LogonPrioritys",$prios);
65 $smarty->assign("LogonPriorityKeys",$prios);
67 if(!$this->nameIsEditable){
68 $smarty->assign("LogonNameACL"," disabled ");
69 }else{
70 $smarty->assign("LogonNameACL","");
71 }
74 $display.= $smarty->fetch(get_template_path('logonManagement.tpl', TRUE,dirname(__FILE__)));
75 return($display);
76 }
78 function save_object()
79 {
80 if(isset($_POST['dialogissubmitted'])){
81 foreach($this->attributes as $attr){
82 if(isset($_POST[$attr])){
83 $this->$attr = stripslashes($_POST[$attr]);
84 }else{
85 $this->$attr = false;
86 }
87 }
88 }
89 }
91 function check()
92 {
93 /* Call common method to give check the hook */
94 $message= plugin::check();
96 if(preg_match("/[^a-z]/",$this->LogonName)){
97 $message[] = _("Specified name is invalid.");
98 }
100 if(empty($this->LogonName)){
101 $message[] = _("Please specify a valid script name.");
102 }
104 if(preg_match("/[^a-z0-9,\.-;:_\(\)!\? ]/i",$this->LogonDescription)){
105 $message[] = _("Specified description contains invalid characters.");
106 }
108 return $message;
109 }
112 function save()
113 {
114 $a_return= array();
115 foreach($this->attributes as $attr){
116 $a_return[$attr]=$this->$attr;
117 }
119 if(!$this->nameIsEditable){
120 $a_return['LogonName']=$this->real_LogonName;
121 }
123 return($a_return);
124 }
126 }
127 // vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
128 ?>