X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=plugins%2Fadmin%2Fapplications%2Fclass_applicationParameters.inc;h=c21919f95655912cdb1ebe5f4001641b66a65905;hb=8d990ac6d07f1ed78ac842004be930dd9352300e;hp=de1d0495c967a052f4efeb48bfd8f568f53d1ede;hpb=fcc078a3131b821697c17c5a3e912e210f75d715;p=gosa.git diff --git a/plugins/admin/applications/class_applicationParameters.inc b/plugins/admin/applications/class_applicationParameters.inc index de1d0495c..c21919f95 100644 --- a/plugins/admin/applications/class_applicationParameters.inc +++ b/plugins/admin/applications/class_applicationParameters.inc @@ -1,22 +1,22 @@ "Eins ist toll", "zwei" => "Zwei ist noch besser"); - /* Parameters */ var $option_name= array(); var $option_value= array(); /* attribute list for save action */ - var $attributes= array(); + + var $CopyPasteVars = array("option_name","option_value"); + var $attributes= array("gosaApplicationParameter"); var $objectclasses= array(); + var $ui; - function applicationParameters ($config, $dn= NULL) + function applicationParameters ($config, $dn= NULL, $parent= NULL) { - plugin::plugin ($config, $dn); + plugin::plugin ($config, $dn, $parent); + + $this->gosaApplicationParameter = array(); if (isset($this->attrs['gosaApplicationParameter'])){ $this->is_account= TRUE; @@ -31,12 +31,16 @@ class applicationParameters extends plugin } else { $this->is_account= FALSE; } + $this->ui = get_userinfo(); } function execute() { + /* Call parent execute */ + plugin::execute(); + /* Do we need to flip is_account state? */ - if (isset($_POST['modify_state'])){ + if (isset($_POST['modify_state']) && chkacl($this->acl,"gotoLogonScript")==""){ $this->is_account= !$this->is_account; } @@ -49,6 +53,7 @@ class applicationParameters extends plugin } else { $display= $this->show_header(_("Create options"), _("This application has options disabled. You can enable them by clicking below.")); + $this->parent->by_object['application']->generateTemplate(); return ($display); } } @@ -60,22 +65,25 @@ class applicationParameters extends plugin $this->option_value[$i]= ""; } - /* Remove value from list */ - for ($i= 0; $ioption_name); $i++){ - if (isset($_POST["remove$i"])){ - $k= 0; - $on= array(); - $ov= array(); - for ($j= 0; $joption_name); $j++){ - if ($j != $i){ - $on[$k]= $this->option_name[$j]; - $ov[$k]= $this->option_value[$j]; - $k++; + if(chkacl($this->acl,"gotoLogonScript") == ""){ + + /* Remove value from list */ + for ($i= 0; $ioption_name); $i++){ + if (isset($_POST["remove$i"])){ + $k= 0; + $on= array(); + $ov= array(); + for ($j= 0; $joption_name); $j++){ + if ($j != $i){ + $on[$k]= $this->option_name[$j]; + $ov[$k]= $this->option_value[$j]; + $k++; + } } + $this->option_name= $on; + $this->option_value= $ov; + break; } - $this->option_name= $on; - $this->option_value= $ov; - break; } } @@ -84,23 +92,33 @@ class applicationParameters extends plugin $this->option_name[]= ""; $this->option_value[]= ""; } + + $mode= ""; + if (chkacl($this->acl, "create") != ""){ + $mode= "disabled"; + } + $table= ""; if (count ($this->option_name)){ for ($i= 0; $i < count($this->option_name); $i++){ $table.=""; + _("Remove")."\" $mode>"; } } $table.= "
"._("Variable").""._("Default value")."
option_name[$i]."\">option_value[$i]."\">
". + "value=\"".$this->option_name[$i]."\" $mode>option_value[$i]."\" $mode>
". "
"; - $table.=""; + + if ($mode == ""){ + $table.=""; + } /* Show main page */ $smarty= get_smarty(); $smarty->assign("table", $table); $display.= $smarty->fetch(get_template_path('parameters.tpl', TRUE)); + $this->parent->by_object['application']->generateTemplate(); return ($display); } @@ -115,8 +133,10 @@ class applicationParameters extends plugin $ldap->cd($this->dn); @DEBUG (DEBUG_LDAP, __LINE__, __FUNCTION__, __FILE__, $this->attributes, "Save"); - $ldap->modify($this->attrs); - show_ldap_error($ldap->get_error()); + $this->cleanup(); + $ldap->modify ($this->attrs); + + show_ldap_error($ldap->get_error(), _("Removing application parameters failed")); /* Optionally execute a command after we're done */ $this->handle_post_events('remove'); @@ -126,26 +146,29 @@ class applicationParameters extends plugin /* Save data to object */ function save_object() { - if (isset($_POST['option0'])){ - for ($i= 0; $ioption_name); $i++){ - $this->option_name[$i]= $_POST["option$i"]; - $this->option_value[$i]= ""; - if ($_POST["value$i"] != ""){ - $this->option_value[$i]= $_POST["value$i"]; - } - } - } + if(chkacl($this->acl,"gotoLogonScript") == ""){ + if (isset($_POST['option0'])){ + for ($i= 0; $ioption_name); $i++){ + $this->option_name[$i]= $_POST["option$i"]; + $this->option_value[$i]= ""; + if ($_POST["value$i"] != ""){ + $this->option_value[$i]= $_POST["value$i"]; + } + } + } + } } /* Check values */ function check() { - $message= array(); + /* Call common method to give check the hook */ + $message= plugin::check(); /* Check for valid option names */ for ($i= 0; $ioption_name); $i++){ - if (!preg_match ("/^[a-z0-9_]+$/", $this->option_name[$i])){ + if (!preg_match ("/^[a-z0-9_]+$/i", $this->option_name[$i])){ $message[]= sprintf(_("Value '%s' specified as option name is not valid."), $this->option_name[$i]); } @@ -174,8 +197,10 @@ class applicationParameters extends plugin $ldap->cd($this->dn); @DEBUG (DEBUG_LDAP, __LINE__, __FUNCTION__, __FILE__, $this->attributes, "Save"); - $ldap->modify($this->attrs); - show_ldap_error($ldap->get_error()); + $this->cleanup(); + $ldap->modify ($this->attrs); + + show_ldap_error($ldap->get_error(), _("Saving applications parameters failed")); /* Optionally execute a command after we're done */ $this->handle_post_events('modify');