diff --git a/plugins/admin/applications/class_applicationParameters.inc b/plugins/admin/applications/class_applicationParameters.inc
index 663068805656905a94c79e6305adeabcb9611ac2..f72339f9618ba2806f4a0a11a2949c6537f1e7c0 100644 (file)
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;
} else {
$this->is_account= FALSE;
}
+ $this->ui = get_userinfo();
}
function execute()
{
/* Call parent execute */
plugin::execute();
+
+ $acl= get_permissions ($this->dn, $this->ui->subtreeACL);
+ $this->acl= get_module_permission($acl, "application", $this->dn);
+
/* 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;
}
} 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);
}
}
$this->option_value[$i]= "";
}
- /* Remove value from list */
- for ($i= 0; $i<count($this->option_name); $i++){
- if (isset($_POST["remove$i"])){
- $k= 0;
- $on= array();
- $ov= array();
- for ($j= 0; $j<count($this->option_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; $i<count($this->option_name); $i++){
+ if (isset($_POST["remove$i"])){
+ $k= 0;
+ $on= array();
+ $ov= array();
+ for ($j= 0; $j<count($this->option_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;
}
}
$this->option_name[]= "";
$this->option_value[]= "";
}
+
+ $mode= "";
+ if (chkacl($this->acl, "create") != ""){
+ $mode= "disabled";
+ }
+
$table= "<table summary=\"\"><tr><td>"._("Variable")."</td><td>"._("Default value")."</td><td></td></tr>";
if (count ($this->option_name)){
for ($i= 0; $i < count($this->option_name); $i++){
$table.="<tr><td><input name=\"option$i\" size=25 maxlength=50 ".
- "value=\"".$this->option_name[$i]."\"></td><td><input name=\"value$i\" ".
- "size=60 maxlength=250 value=\"".$this->option_value[$i]."\"><br></td><td>".
+ "value=\"".$this->option_name[$i]."\" $mode></td><td><input name=\"value$i\" ".
+ "size=60 maxlength=250 value=\"".$this->option_value[$i]."\" $mode><br></td><td>".
"<input type=\"submit\" name=\"remove$i\" value=\"".
- _("Remove")."\"></td></tr>";
+ _("Remove")."\" $mode></td></tr>";
}
}
$table.= "</table>";
- $table.="<input type=\"submit\" name=\"add_option\" value=\""._("Add option")."\">";
+
+ if ($mode == ""){
+ $table.="<input type=\"submit\" name=\"add_option\" value=\""._("Add option")."\">";
+ }
/* 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);
}
$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');
/* Save data to object */
function save_object()
{
- if (isset($_POST['option0'])){
- for ($i= 0; $i<count($this->option_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; $i<count($this->option_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; $i<count($this->option_name); $i++){
$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');