Code

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

gosa-plugins/systems/admin/systems/class_componentGeneric.inc
gosa-plugins/systems/admin/systems/class_servGeneric.inc

index 4fca7029cd13cdb2f7d73bf37529fa5d03561ba2..44de99f2f3b409ce47fd1607f4b119c22c526d6f 100644 (file)
@@ -31,6 +31,8 @@ class componentGeneric extends plugin
   var $cn= "";
   var $description= "";
   var $orig_dn= "";
+  var $orig_cn= "";
+  var $orig_base= "";
 
   /* attribute list for save action */
   var $attributes= array("cn", "description");
@@ -53,6 +55,9 @@ class componentGeneric extends plugin
     $this->netConfigDNS = new termDNS($this->config,$this,$this->objectclasses, true);
     /* Save dn for later references */
     $this->orig_dn= $this->dn;
+
+    $this->orig_base = $this->base;
+    $this->orig_cn = $this->cn;
   }
 
 
@@ -235,6 +240,14 @@ class componentGeneric 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 dd5a5e2c2070d7cf4fdc5b47126c171b5ac237ae..cc451e00662f2ec79855955c178697e004c535b0 100644 (file)
@@ -33,6 +33,7 @@ class servgeneric extends plugin
   var $description= "";
   var $orig_dn= "";
   var $orig_cn= "";
+  var $orig_base= "";
 
   /* attribute list for save action */
   var $attributes= array("cn", "description","gotoMode");
@@ -93,8 +94,9 @@ class servgeneric extends plugin
     }
        
     /* Save dn for later references */
-    $this->orig_dn= $this->dn;
-    $this->orig_cn= $this->cn;
+    $this->orig_dn   = $this->dn;
+    $this->orig_cn   = $this->cn;
+    $this->orig_base = $this->base;
   }
 
 
@@ -336,6 +338,14 @@ class servgeneric 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->cn != $this->orig_cn || $this->base != $this->orig_base && !$this->acl_is_moveable($this->base)){
+      $message[] = msgPool::permMove();
+    }
+
     return ($message);
   }