X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=gosa-core%2Finclude%2Fclass_pluglist.inc;h=ecc77a18c519e517eadcab801409b3fa4e24bd3f;hb=cd5f4de8cfe3b506e563f61dca7f9dae0cccd19f;hp=095620859bb274fa94c9980fad2961105ff08d62;hpb=8aa84e1a1f4d20bcb133c7542965f3cee0b98ee4;p=gosa.git diff --git a/gosa-core/include/class_pluglist.inc b/gosa-core/include/class_pluglist.inc index 095620859..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,12 +99,28 @@ class pluglist { } foreach($acls_to_check as $acl_to_check){ - $deps = $this->ui->get_module_departments($acl_to_check); - if(count($deps)) 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(); @@ -353,4 +378,5 @@ class pluglist { } } +// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler: ?>