X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=plugins%2Faddons%2Fgotomasses%2Fclass_gotomasses.inc;h=113cbcd738283b3b486c34191d725566a1ec43bd;hb=8d8ff16c22df33fcd6336137c87c63b5b4c7f249;hp=a8230776f8aad1208e5f1a077a762390f0128261;hpb=4227a759c3e9de07d2f56a3584482b1e57f92dd1;p=gosa.git diff --git a/plugins/addons/gotomasses/class_gotomasses.inc b/plugins/addons/gotomasses/class_gotomasses.inc index a8230776f..113cbcd73 100644 --- a/plugins/addons/gotomasses/class_gotomasses.inc +++ b/plugins/addons/gotomasses/class_gotomasses.inc @@ -3,7 +3,7 @@ class gotomasses extends plugin { /* Definitions */ - var $plHeadline = "Mass machine"; + var $plHeadline = "System mass deployment"; var $plDescription = "This does something"; /* attribute list for save action */ @@ -22,6 +22,7 @@ class gotomasses extends plugin */ var $contents_backup = array(); + var $contents_initially_loaded = FALSE; function gotomasses($config, $dn= NULL) { @@ -30,7 +31,6 @@ class gotomasses extends plugin /* Include config object */ $this->config= $config; - $this->load_csv_data(); } @@ -49,6 +49,12 @@ class gotomasses extends plugin function execute() { + /* Load contents */ + if(!$this->contents_initially_loaded){ + $this->load_csv_data(); + $this->contents_initially_loaded = TRUE; + } + if(isset($_POST['export_gotomass_csv'])){ $data = ""; foreach($this->contents as $val){ @@ -72,22 +78,28 @@ class gotomasses extends plugin /* Import given file */ if(isset($_POST['import_gotomass_csv']) && isset($_FILES['mass_file'])){ - $str = @file_get_contents($_FILES['mass_file']['tmp_name']); - if(empty($str)){ - print_red(_("The uploaded file seams to be empty, import aborted.")); + if(!$this->acl_is_writeable("something")){ + print_red(_("Your are not allowed to import csv data into this plugin.")); }else{ - $this->load_csv_data($str); + $str = @file_get_contents($_FILES['mass_file']['tmp_name']); + if(empty($str)){ + print_red(_("The uploaded file seams to be empty, import aborted.")); + }else{ + $this->load_csv_data($str); + } } } /* Add a new empty entry to the list */ if(isset($_POST['add_new_entry'])){ - $this->contents[] = array("MAC" => "", "OG" => ""); + $this->contents[] = array("MAC" => "", "OG" => "","VALID_MAC" => FALSE); } /* Call parent execute */ plugin::execute(); $smarty= get_smarty(); + $smarty->assign("is_writeable",$this->acl_is_writeable("something")); + $smarty->assign("is_readable", $this->acl_is_readable("something")); $smarty->assign("contents_modified",$this->contents_modified()); $smarty->assign("ogs", $this->get_object_groups()); $smarty->assign("contents", $this->contents); @@ -123,6 +135,14 @@ class gotomasses extends plugin function load_csv_data($data = NULL) { + $ui = get_userinfo(); + + if(!$this->acl_is_readable("something")){ + $this->contents =array(); + print_red(_("Your are not allowed to view contents of this plugin.")); + return(FALSE); + } + if($data == NULL){ if(!file_exists($this->file_to_read) || !is_readable($this->file_to_read)){ print_red(sprintf(_("Can't locate or read csv storage file '%s'."),$this->file_to_read)); @@ -145,10 +165,11 @@ class gotomasses extends plugin $mac = preg_replace("/(,|;).*$/","",$str); if(!empty($og) || !empty($mac)){ - $this->contents[] = array("MAC" => $mac , "OG" => $og); + $this->contents[] = array("MAC" => $mac , "OG" => $og,"VALID_MAC" => is_mac($mac)); } } fclose($fp); + $this->contents_backup = $this->contents; }else{ $this->contents =array(); $rows = split("\n",$data); @@ -159,16 +180,21 @@ class gotomasses extends plugin $mac = preg_replace("/(,|;).*$/","",$str); if(!empty($og) || !empty($mac)){ - $this->contents[] = array("MAC" => $mac , "OG" => $og); + $this->contents[] = array("MAC" => $mac , "OG" => $og, "VALID_MAC" => is_mac($mac)); } } } - $this->contents_backup = $this->contents; } function save_csv_data() { + if(!$this->acl_is_writeable("something")){ + $this->contents =array(); + print_red(_("Your are not allowed to write the content of this plugin.")); + return(FALSE); + } + if(!file_exists($this->file_to_read) || !is_writeable($this->file_to_read)){ print_red(sprintf(_("Can't locate or write csv storage file '%s'."),$this->file_to_read)); }else{ @@ -195,7 +221,8 @@ class gotomasses extends plugin $ogs = $this->get_object_groups(); foreach($this->contents as $id => $data){ if(isset($_POST['mac_'.$id])){ - $this->contents[$id]['MAC'] = $_POST['mac_'.$id]; + $this->contents[$id]['MAC'] = $_POST['mac_'.$id]; + $this->contents[$id]['VALID_MAC'] = is_mac($_POST['mac_'.$id]); } if(isset($_POST['og_'.$id]) && in_array_ics($_POST['og_'.$id],$ogs)){ $this->contents[$id]['OG'] = $_POST['og_'.$id]; @@ -237,13 +264,13 @@ class gotomasses extends plugin function plInfo() { return (array( - "plShortName" => _("Mass machine deployment"), - "plDescription" => _("Mass machine deployment addon"), + "plShortName" => _("System mass deployment"), + "plDescription" => _("Provide a mechanism to automatically activate a set of systems"), "plSelfModify" => FALSE, "plDepends" => array(), "plPriority" => 0, "plSection" => array("addon"), - "plCategory" => array("gotomasses" => array("objectClass" => "none", "description" => _("Mass machine deployment"))), + "plCategory" => array("gotomasses" => array("objectClass" => "none", "description" => _("System mass deployment"))), "plProvidedAcls" => array() )); }