X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=gosa-core%2Finclude%2Fclass_pluglist.inc;h=ecc77a18c519e517eadcab801409b3fa4e24bd3f;hb=cd5f4de8cfe3b506e563f61dca7f9dae0cccd19f;hp=1b311a778dba2502f1957e87df306c7c3bbeb2a2;hpb=1362094321e59bba759ae88dd250588364e6b9be;p=gosa.git diff --git a/gosa-core/include/class_pluglist.inc b/gosa-core/include/class_pluglist.inc index 1b311a778..ecc77a18c 100644 --- a/gosa-core/include/class_pluglist.inc +++ b/gosa-core/include/class_pluglist.inc @@ -80,8 +80,17 @@ class pluglist { } + /*! \brief Check whether we are allowed to modify the given acl or nit.. + This function is used to check which plugins are visible. + + @param The acl tag to test, eg. "users/user:self", "systems", ... + @return Boolean TRUE on success else FALSE + */ function check_access($aclname) { + /* Split given acl string into an array. + e.g. "user,systems" => array("users","systems"); + */ $acls_to_check = array(); if(preg_match("/,/",$aclname)){ $acls_to_check = split(",",$aclname); @@ -90,22 +99,28 @@ class pluglist { } foreach($acls_to_check as $acl_to_check){ - $deps = $this->ui->get_module_departments($acl_to_check); - foreach($deps as $dep){ - if(preg_match("/\//",$acl_to_check)){ - if($this->ui->get_permissions($dep,$acl_to_check) != ""){ - return(TRUE); - } - }else{ - if($this->ui->get_category_permissions($dep,$acl_to_check) != ""){ - return(TRUE); - } + + /* Check if the given acl tag is only valid for self acl entries + ui->get_permissions($this->ui->dn,$acl_to_check,"") != ""){ + return(TRUE); } + return(FALSE); + }else{ + + /* No self acls. Check if we have any acls for the given ACL type + */ + $deps = $this->ui->get_module_departments($acl_to_check,TRUE); + if(count($deps)) return TRUE; } } return (FALSE); } + function gen_headlines() { $ret = array(); @@ -363,4 +378,5 @@ class pluglist { } } +// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler: ?>