X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=include%2Fclass_plugin.inc;h=24863ac16eb744738e38fdaea9bd1db22f7c90e1;hb=895712accc11cf9defc13cdbc64a6b3c7e7e548a;hp=a83cb1cea7635d4c1d774db435fadc04323287d4;hpb=1b02cf87a484fc096961998a8a6ebd6fac5f59da;p=gosa.git
diff --git a/include/class_plugin.inc b/include/class_plugin.inc
index a83cb1cea..24863ac16 100644
--- a/include/class_plugin.inc
+++ b/include/class_plugin.inc
@@ -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= "
";
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= "";
return($display);
@@ -1410,38 +1409,44 @@ echo "FIXME: remove_snapshot uses old acl's
";
}
+ 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
";
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);
}