Code

Updated ACL check for groups.
[gosa.git] / plugins / admin / applications / class_applicationParameters.inc
index 12e055a77083a36f1d51d95e6181fa2c9c7a280b..c21919f95655912cdb1ebe5f4001641b66a65905 100644 (file)
@@ -1,22 +1,20 @@
 <?php
 class applicationParameters extends plugin
 {
-  /* CLI vars */
-  var $cli_summary= "Manage application class parameters";
-  var $cli_description= "Some longer text\nfor help";
-  var $cli_parameters= array("eins" => "Eins ist toll", "zwei" => "Zwei ist noch besser");
-
   /* Parameters  */
   var $option_name= array();
   var $option_value= array();
 
   /* attribute list for save action */
+
+  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();
 
@@ -33,6 +31,7 @@ class applicationParameters extends plugin
        } else {
                $this->is_account= FALSE;
        }
+       $this->ui = get_userinfo();
   }
 
   function execute()
@@ -41,7 +40,7 @@ class applicationParameters extends plugin
        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;
        }
 
@@ -66,22 +65,25 @@ class applicationParameters extends plugin
                $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;
                }
        }
 
@@ -90,18 +92,27 @@ class applicationParameters extends plugin
                $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();
@@ -123,9 +134,9 @@ class applicationParameters extends plugin
         @DEBUG (DEBUG_LDAP, __LINE__, __FUNCTION__, __FILE__,
                 $this->attributes, "Save");
        $this->cleanup();
-$ldap->modify ($this->attrs); 
+       $ldap->modify ($this->attrs); 
 
-       show_ldap_error($ldap->get_error());
+       show_ldap_error($ldap->get_error(), _("Removing application parameters failed"));
 
        /* Optionally execute a command after we're done */
        $this->handle_post_events('remove');
@@ -135,15 +146,17 @@ $ldap->modify ($this->attrs);
   /* 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"];
+                                 }
+                         }
+                 }
+         }
   }
 
 
@@ -185,9 +198,9 @@ $ldap->modify ($this->attrs);
         @DEBUG (DEBUG_LDAP, __LINE__, __FUNCTION__, __FILE__,
                 $this->attributes, "Save");
        $this->cleanup();
-$ldap->modify ($this->attrs); 
+       $ldap->modify ($this->attrs); 
 
-       show_ldap_error($ldap->get_error());
+       show_ldap_error($ldap->get_error(), _("Saving applications parameters failed"));
 
        /* Optionally execute a command after we're done */
        $this->handle_post_events('modify');