Code

W3c ......
[gosa.git] / include / class_plugin.inc
index a83cb1cea7635d4c1d774db435fadc04323287d4..24863ac16eb744738e38fdaea9bd1db22f7c90e1 100644 (file)
@@ -109,6 +109,7 @@ class plugin
   var $saved_attributes= array();
 
   var $acl_base= "";
+  var $acl_category= "";
 
   /* Plugin identifier */
   var $plHeadline= "";
@@ -516,14 +517,13 @@ class plugin
   /* Show header message for tab dialogs */
   function show_enable_header($button_text, $text, $disabled= FALSE)
   {
-    if ($disabled == TRUE){
+    if (($disabled == TRUE) || (!$this->acl_is_createable())){
       $state= "disabled";
     } else {
       $state= "";
     }
     $display= "<table summary=\"\" width=\"100%\"><tr>\n<td colspan=2><p><b>$text</b></p>\n";
-    $display.= "<input type=submit value=\"$button_text\" name=\"modify_state\" ".
-      ($this->acl_is_createable()?'':'disabled')." ".$state.
+    $display.= "<input type=submit value=\"$button_text\" name=\"modify_state\" ".$state.
       "><p class=\"seperator\">&nbsp;</p></td></tr></table>";
 
     return($display);
@@ -533,14 +533,13 @@ class plugin
   /* Show header message for tab dialogs */
   function show_disable_header($button_text, $text, $disabled= FALSE)
   {
-    if ($disabled == TRUE){
+    if (($disabled == TRUE) || !$this->acl_is_removeable()){
       $state= "disabled";
     } else {
       $state= "";
     }
     $display= "<table summary=\"\" width=\"100%\"><tr>\n<td colspan=2><p><b>$text</b></p>\n";
-    $display.= "<input type=submit value=\"$button_text\" name=\"modify_state\" ".
-      ($this->acl_is_removeable()?'':'disabled')." ".$state.
+    $display.= "<input type=submit value=\"$button_text\" name=\"modify_state\" ".$state.
       "><p class=\"seperator\">&nbsp;</p></td></tr></table>";
 
     return($display);
@@ -1410,38 +1409,44 @@ echo "FIXME: remove_snapshot uses old acl's<br>";
   }
 
 
+  function set_acl_category($category)
+  {
+    $this->acl_category= "$category/";
+  }
+
+
   function acl_is_writeable($attribute,$skip_write = FALSE)
   {
     $ui= get_userinfo();
-    return preg_match('/w/', $ui->get_permissions($this->acl_base, get_class($this), $attribute,$skip_write));
+    return preg_match('/w/', $ui->get_permissions($this->acl_base, $this->acl_category.get_class($this), $attribute, $skip_write));
   }
 
 
   function acl_is_readable($attribute)
   {
     $ui= get_userinfo();
-    return preg_match('/r/', $ui->get_permissions($this->acl_base, get_class($this), $attribute));
+    return preg_match('/r/', $ui->get_permissions($this->acl_base, $this->acl_category.get_class($this), $attribute));
   }
 
 
   function acl_is_createable()
   {
     $ui= get_userinfo();
-    return preg_match('/c/', $ui->get_permissions($this->acl_base, get_class($this), '0'));
+    return preg_match('/c/', $ui->get_permissions($this->acl_base, $this->acl_category.get_class($this), '0'));
   }
 
 
   function acl_is_removeable()
   {
     $ui= get_userinfo();
-    return preg_match('/d/', $ui->get_permissions($this->acl_base, get_class($this), '0'));
+    return preg_match('/d/', $ui->get_permissions($this->acl_base, $this->acl_category.get_class($this), '0'));
   }
 
 
   function acl_is_moveable()
   {
     $ui= get_userinfo();
-    return preg_match('/m/', $ui->get_permissions($this->acl_base, get_class($this), '0'));
+    return preg_match('/m/', $ui->get_permissions($this->acl_base, $this->acl_category.get_class($this), '0'));
   }
 
 
@@ -1453,7 +1458,7 @@ echo "FIXME: remove_snapshot uses old acl's<br>";
   function getacl($attribute,$skip_write= FALSE)
   {
     $ui= get_userinfo();
-    return  $ui->get_permissions($this->acl_base, get_class($this), $attribute,$skip_write);
+    return  $ui->get_permissions($this->acl_base, $this->acl_category.get_class($this), $attribute,$skip_write);
   }