Code

Some fixes for acls
authorhickert <hickert@594d385d-05f5-0310-b6e9-bd551577e9d8>
Fri, 4 Aug 2006 04:29:21 +0000 (04:29 +0000)
committerhickert <hickert@594d385d-05f5-0310-b6e9-bd551577e9d8>
Fri, 4 Aug 2006 04:29:21 +0000 (04:29 +0000)
git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@4381 594d385d-05f5-0310-b6e9-bd551577e9d8

plugins/personal/environment/class_environment.inc
plugins/personal/environment/class_logonManagementDialog.inc
plugins/personal/environment/environment.tpl
plugins/personal/environment/main.inc
plugins/personal/generic/main.inc
plugins/personal/posix/class_posixAccount.inc
plugins/personal/posix/main.inc

index 96f9bd88322b189af2af07c2eea196fef9593425..976ebd641aa8c64bda031b32d28851d1fb4a2f2f 100644 (file)
@@ -653,15 +653,17 @@ class environment extends plugin
      */
 
     /* If there is a new entry wanted, open a new entry by initilising the dialog */
-    if(isset($_POST['gotoHotplugDeviceNew'])){
+    if((isset($_POST['gotoHotplugDeviceNew'])) && ($this->acl_is_writeable("gotoHotplugDevice"))){
       $this->dialog = new hotplugDialog($this->config,$this->dn);
       $this->is_dialog = true;
     }
 
     /* We have to delete the selected hotplug from the list*/
     if((isset($_POST['gotoHotplugDeviceDel']))&&(isset($_POST['gotoHotplugDevice'])) && $this->acl_is_writeable("gotoHotplugDevice")){
-      foreach($_POST['gotoHotplugDevice'] as $name){
-        unset($this->gotoHotplugDevices[$name]);
+      if($this->acl_is_writeable("gotoHotplugDevice")){
+        foreach($_POST['gotoHotplugDevice'] as $name){
+          unset($this->gotoHotplugDevices[$name]);
+        }
       }
     }
 
@@ -685,30 +687,23 @@ class environment extends plugin
     /* Dialod saved */
     if(isset($_POST['HotPlugSave'])){
 
-      if(!$this->acl_is_writeable("gotoHotplug")){
-        unset($this->dialog);
-        $this->dialog= NULL;
-        $this->is_dialog = false;
+      $this->dialog->save_object();
+      if(count($this->dialog->check())!=0){
+        foreach($this->dialog->check() as $msg){
+          print_red($msg);
+        }
       }else{
-
         $this->dialog->save_object();
-        if(count($this->dialog->check())!=0){
-          foreach($this->dialog->check() as $msg){
-            print_red($msg);
-          }
-        }else{
-          $this->dialog->save_object();
-          $a_tmp = $this->dialog->save();
+        $a_tmp = $this->dialog->save();
 
-          if(is_array($a_tmp)){
-            foreach($a_tmp as $name => $hotplug){
-              $this->gotoHotplugDevices[$name]= $hotplug; 
-            }
+        if(is_array($a_tmp)){
+          foreach($a_tmp as $name => $hotplug){
+            $this->gotoHotplugDevices[$name]= $hotplug; 
           }
-          unset($this->dialog);
-          $this->dialog= NULL;
-          $this->is_dialog = false;
         }
+        unset($this->dialog);
+        $this->dialog= NULL;
+        $this->is_dialog = false;
       }
     }
     $smarty->assign("gotoHotplugDevices",$this->printOutHotPlugDevices());
@@ -796,6 +791,7 @@ class environment extends plugin
     $smarty->assign("gotoPrinterKeys",array_flip($this->printOutPrinterDevices()));
 
     /* General behavior */
+    if($this->acl_is_writeable("gotoKioskProfile")){
     if((isset($this->dialog))&&($this->dialog!=NULL)&&(!empty($this->dialog))){
       $this->dialog->save_object();
       $disp =$this->dialog->execute();
@@ -809,6 +805,7 @@ class environment extends plugin
         $this->gotoKioskProfile = 'none';
       }
       return($disp);
+      }
     }
 
     /* Als smarty vars are set. Get smarty template and generate output */
index 98ce41ff312a27e1e7454f321ab4c79e3ff2337b..3a16c65557d8498a6d65e5c746c6a962052bc5e8 100644 (file)
@@ -81,9 +81,16 @@ class logonManagementDialog extends plugin
       foreach($this->attributes as $attr){
         if(isset($_POST[$attr])){
           $this->$attr = stripslashes($_POST[$attr]); 
+        }
+      }
+
+      foreach(array("LogonLast","LogonOverload") as $checkBoxes){
+        if(isset($_POST[$checkBoxes])){
+          $this->$checkBoxes = stripslashes($_POST[$checkBoxes]);
         }else{
-          $this->$attr = false;
+          $this->$checkBoxes = "";
         }
+
       }
     }
   }
index ed4e32a9c99232520b29b83ffe792a25d863136b..e5f70c1b2edc3f2f06571e9d1ce327a8ac8acb44 100644 (file)
       <input type="submit" name="gotoHotplugDeviceUse" value="{t}Existing{/t}">
 {/render}
 {render acl=$gotoHotplugDeviceACL}
-      <input type="submit" {$gotoHotplugDeviceACL} name="gotoHotplugDeviceDel" value="{t}Delete{/t}"
+      <input type="submit" name="gotoHotplugDeviceDel" value="{t}Delete{/t}"
       {if !$gotoHotplugDevices} disabled {/if}>
 {/render}
      </td>
index 4c04e5a0e8ee1476b70b3e62a259474d5d1e30bc..0af0fb11e772f14bb2665be16a299f4701b8abf3 100644 (file)
@@ -31,6 +31,7 @@ if (!$remove_lock){
   if (!isset($_SESSION['environment']) || (isset($_GET['reset']) && $_GET['reset'] == 1)){
     $_SESSION['environment']= new environment ($config, $ui->dn);
     $_SESSION['environment']->set_acl_category('users');
+    $_SESSION['environment']->set_acl_base($ui->dn);
   }
   $environment= $_SESSION['environment'];
 
@@ -65,7 +66,6 @@ if (!$remove_lock){
     if (count ($message) == 0){
       $environment->save ();
       gosa_log ("User/environment object'".$ui->dn."' has been saved");
-      $environment->acl= "#none#";
       del_lock ($ui->dn);
       sess_del ('edit');
 
@@ -101,7 +101,7 @@ if (!$remove_lock){
       $info= "<img alt=\"\" align=\"middle\" src=\"".get_template_path('images/openlock.png').
              "\"> ".$ui->dn."&nbsp;";
   #      if (isset($editacl) && $editacl != "#none#"){
-      echo "FIxme, only display edit button if there is at least one attribute writeable";
+      $display .=  "FIxme, only display edit button if there is at least one attribute writeable";
         $info.= "<img alt=\"\" align=\"middle\" src=\"".get_template_path('images/lamp.png').
             "\"> "._("Click the 'Edit' button below to change informations in this dialog");
         $display.= "<input type=submit name=\"edit\" value=\""._("Edit")."\">\n";
index 3c804fabe066df6f8e512ad450be7cafaca22bb4..40b00534a382c85c394c6e2e71f14ca9bed7bd16 100644 (file)
@@ -166,7 +166,8 @@ if (!$remove_lock){
       }
 
       /* Only display edit button if there is at least one attribute editable */
-      if(preg_match("/w/",$ui->get_category_permissions($ui->dn,"users"))){
+      $display .= "edit buttons does not work.";
+      if(preg_match("/w/",$ui->get_category_permissions($ui->dn,"users/user"))){
         if ($fn == "edit"){
           $info.= "<img class=\"center\" alt=\"\" align=\"middle\" src=\"".get_template_path('images/lamp.png')."\"> ".
             _("Click the 'Edit' button below to change informations in this dialog");
index 79a8149f08672b6a2aee022b78af32dc8ce6c2e0..4c2790d2b76904b612be94b8d8d29445811eeb9e 100644 (file)
@@ -1132,8 +1132,9 @@ class posixAccount extends plugin
       $base = get_groups_ou().$base;
     }
 
-    $res= get_list($filter, "groups", $base,$attrs, $Flags);
-
+    $res= get_list($filter, "groups/group", $base,$attrs, $Flags);
+    print_a($res);
+  
     /* check sizelimit */
     if (preg_match("/size limit/i", $ldap->error)){
       $_SESSION['limit_exceeded']= TRUE;
index c1b0c30e1a63cec283b5e951ef78af6ae9acb512..5d68f0f21bcc191fbeee1dcf78472bf10928cfff 100644 (file)
@@ -105,12 +105,15 @@ if (!$remove_lock){
     } else {
       $info= "<img alt=\"\" align=\"middle\" src=\"".get_template_path('images/openlock.png').
              "\"> ".$ui->dn."&nbsp;";
-      
-    $display .= "FIXME : user -> posix, 109, Only display edit button if there is at least one attribute editable.";
+
+      /* Only display edit button if there is at least one attribute editable */
+      $display .= "edit buttons does not work.";
+      if(preg_match("/w/",$ui->get_category_permissions($ui->dn,"users"))){
         $info.= "<img alt=\"\" align=\"middle\" src=\"".get_template_path('images/lamp.png')."\"> ".
-                _("Click the 'Edit' button below to change informations in this dialog");
+          _("Click the 'Edit' button below to change informations in this dialog");
 
         $display.= "<input type=submit name=\"edit\" value=\""._("Edit")."\">\n";
+      }
       $display.= "<input type=\"hidden\" name=\"ignore\">\n";
     }
     $display.= "</p>\n";