Code

Updated acl checks
authorhickert <hickert@594d385d-05f5-0310-b6e9-bd551577e9d8>
Wed, 28 May 2008 09:34:16 +0000 (09:34 +0000)
committerhickert <hickert@594d385d-05f5-0310-b6e9-bd551577e9d8>
Wed, 28 May 2008 09:34:16 +0000 (09:34 +0000)
git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@11066 594d385d-05f5-0310-b6e9-bd551577e9d8

gosa-plugins/goto/admin/systems/goto/class_printGeneric.inc
gosa-plugins/goto/admin/systems/goto/class_terminalGeneric.inc
gosa-plugins/goto/admin/systems/goto/class_workstationGeneric.inc

index d2b3af58c071a1491980767fd8185679caab1daa..68cc78273a1351486ef4d6cfeb4b3c05c38b64d8 100644 (file)
@@ -15,6 +15,8 @@ class printgeneric extends plugin
   var $gotoPrinterPPD   = "";
   var $initial_PPD      = "";
   var $orig_dn          = "";
+  var $orig_cn          = "";
+  var $orig_base        = "";
 
   var $UserMember       ="";
   var $UserMembers      =array();
@@ -143,6 +145,8 @@ class printgeneric extends plugin
         }
       }
     }
+    $this->orig_cn    = $this->cn;
+    $this->orig_base  = $this->base;
   }
 
   function set_acl_base($base)
@@ -695,6 +699,14 @@ class printgeneric extends plugin
       }
     }
 
+    /* Check if we are allowed to create or move this object
+     */
+    if($this->orig_dn == "new" && !$this->acl_is_createable($this->base)){
+      $message[] = msgPool::permCreate();
+    }elseif($this->base != $this->orig_base && !$this->acl_is_moveable($this->base)){
+      $message[] = msgPool::permMove();
+    }
+
     return ($message);
   }
 
index 05caf34686b389f273654f26b2ef422af83fcb1d..fd8a0e78db2130dd8c20f44188cea21ce02b9cd1 100644 (file)
@@ -30,6 +30,7 @@ class termgeneric extends plugin
   var $description= "";
   var $orig_dn= "";
   var $orig_cn= "";
+  var $orig_base= "";
 
   var $inheritTimeServer = true;
 
@@ -132,6 +133,7 @@ class termgeneric extends plugin
 
     $this->orig_dn= $this->dn;
     $this->orig_cn= $this->cn;
+    $this->orig_base= $this->base;
   }
 
   function set_acl_base($base)
@@ -439,6 +441,14 @@ class termgeneric extends plugin
       $message[]= msgPool::required(_("NTP server"));
     }
 
+    /* Check if we are allowed to create or move this object
+     */
+    if($this->orig_dn == "new" && !$this->acl_is_createable($this->base)){
+      $message[] = msgPool::permCreate();
+    }elseif($this->base != $this->orig_base && !$this->acl_is_moveable($this->base)){
+      $message[] = msgPool::permMove();
+    }
+
     return ($message);
   }
 
index b5207001c491bcf31c53f0771f8ecbf09475b191..0da304eb731c7556b91904a0822edeae804d6028 100644 (file)
@@ -32,6 +32,7 @@ class workgeneric extends plugin
   var $l= "";
   var $orig_dn= "";
   var $orig_cn= "";
+  var $orig_base= "";
 
   /* Plugin side filled */
   var $modes= array();
@@ -154,6 +155,7 @@ class workgeneric extends plugin
     /* Save 'dn' for later referal */
     $this->orig_dn= $this->dn;
     $this->orig_cn= $this->cn;
+    $this->orig_base= $this->base;
   }
 
 
@@ -486,6 +488,14 @@ class workgeneric extends plugin
             CONFIRM_DIALOG);
       }
     }
+
+    /* Check if we are allowed to create or move this object
+     */
+    if($this->orig_dn == "new" && !$this->acl_is_createable($this->base)){
+      $message[] = msgPool::permCreate();
+    }elseif($this->base != $this->orig_base && !$this->acl_is_moveable($this->base)){
+      $message[] = msgPool::permMove();
+    }
  
     return ($message);
   }