diff --git a/plugins/addons/gotomasses/class_gotomasses.inc b/plugins/addons/gotomasses/class_gotomasses.inc
index a8230776f8aad1208e5f1a077a762390f0128261..113cbcd738283b3b486c34191d725566a1ec43bd 100644 (file)
class gotomasses extends plugin
{
/* Definitions */
- var $plHeadline = "Mass machine";
+ var $plHeadline = "System mass deployment";
var $plDescription = "This does something";
/* attribute list for save action */
*/
var $contents_backup = array();
+ var $contents_initially_loaded = FALSE;
function gotomasses($config, $dn= NULL)
{
/* Include config object */
$this->config= $config;
- $this->load_csv_data();
}
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){
/* 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);
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));
$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);
$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{
$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];
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()
));
}