orig_cn= $object['cn']; $this->dn=$object['dn']; foreach($object as $name=>$value){ $oname = $name; $this->$oname=$value; } }else{ if(is_array($object)&&count($object)){ $this->orig_cn= $object['cn']; $this->dn=$object['dn']; foreach($object as $name=>$value){ $oname = $name; $this->$oname=$value; } }else{ $this->status = "new"; $this->orig_cn = false; } } } function execute() { /* Call parent execute */ plugin::execute(); /* Fill templating stuff */ $smarty = get_smarty(); $smarty->assign("freeze", preg_match("/freeze/i",$this->FAIstate)); $display = ""; if(isset($_POST['ImportUpload']) && $this->acl_is_writeable("FAIscript")){ if(($_FILES['ImportFile']['error']!=0)){ msg_dialog::display(_("Error"), msgPool::incorrectUpload(), ERROR_DIALOG); }else if(($_FILES['ImportFile']['size']==0)){ msg_dialog::display(_("Error"), msgPool::incorrectUpload(_("file is empty")), ERROR_DIALOG); }else{ $str = utf8_encode(addslashes(file_get_contents($_FILES['ImportFile']['tmp_name']))); $this->FAIscript = $str; } } /* Magic quotes GPC, escapes every ' " \, to solve some security risks * If we post the escaped strings they will be escaped again */ foreach($this->attributes as $attrs){ if(get_magic_quotes_gpc()){ $smarty->assign($attrs,(stripslashes($this->$attrs))); }else{ $smarty->assign($attrs,($this->$attrs)); } } /* File download requested */ if(isset($_GET['getFAIScript'])){ send_binary_content(stripslashes($this->FAIscript),$this->cn.".FAIscript"); } /* Create download button*/ if($this->dn != "new" && $this->acl_is_readable("FAIscript")){ $smarty->assign("DownMe"," "._("Download")." "); }else{ $smarty->assign("DownMe",""); } for($i =0 ; $i < 100 ; $i++){ $FAIprioritys[$i]=$i; } $tmp = $this->plInfo(); foreach($tmp['plProvidedAcls'] as $name => $translated){ $acl = $this->getacl($name,preg_match("/freeze/i",$this->FAIstate)); $smarty->assign($name."ACL",$acl); } if(get_magic_quotes_gpc()){ $smarty->assign("FAIscript" , htmlentities(stripslashes($this->FAIscript))); }else{ $smarty->assign("FAIscript" , htmlentities($this->FAIscript)); } $smarty->assign("FAIprioritys",$FAIprioritys); $display.= $smarty->fetch(get_template_path('faiScriptEntry.tpl', TRUE)); return($display); } /* Save data to object */ function save_object() { if((isset($_POST['SubObjectFormSubmitted'])) && !preg_match("/freeze/", $this->FAIstate)){ foreach($this->attributes as $attrs){ if($this->acl_is_writeable($attrs)){ if(isset($_POST[$attrs])){ $this->$attrs = $_POST[$attrs]; }else{ $this->$attrs = ""; } } } } } /* Check supplied data */ function check() { /* Call common method to give check the hook */ $message= plugin::check(); if(isset($this->parent->SubObjects[$this->cn]) && $this->cn != $this->orig_cn){ $message[] = msgPool::duplicated(_("Name")); } $c = trim($this->cn); if($c == ""){ $message[] = msgPool::required(_("Name")); } if(preg_match("/[^a-z0-9_\-]/i",$c)){ $message[] = msgPool::invalid(_("Name"),$c,"/[a-z0-9_\-]/i"); } $s = trim($this->FAIscript); if($s == ""){ $message[]= msgPool::required(_("Script")); } return ($message); } function save() { $tmp=array(); foreach($this->attributes as $attrs){ $tmp[$attrs] = $this->$attrs; } /* Strip out dos newlines */ $tmp['FAIscript']= strtr($this->FAIscript, array("\x0D" => "")); if(($this->orig_cn)&&($tmp['cn']!=$this->orig_cn)){ $tmp['remove']['from'] = $this->orig_cn; $tmp['remove']['to'] = $tmp['cn']; } $tmp['dn'] = $this->dn; $tmp['status'] = $this->status; return($tmp); } /* Return plugin informations for acl handling */ static function plInfo() { return (array( "plShortName" => _("Script entry"), "plDescription" => _("FAI script entry"), "plSelfModify" => FALSE, "plDepends" => array(), "plPriority" => 19, "plSection" => array("administration"), "plCategory" => array("fai"), "plProvidedAcls" => array( "cn" => _("Name"), "description" => _("Description"), "FAIscript" => _("Script entry"), "FAIpriority" => _("Script Priority")) )); } } // vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler: ?>