summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 2c06b0a)
raw | patch | inline | side by side (parent: 2c06b0a)
author | hickert <hickert@594d385d-05f5-0310-b6e9-bd551577e9d8> | |
Mon, 23 Jun 2008 05:59:27 +0000 (05:59 +0000) | ||
committer | hickert <hickert@594d385d-05f5-0310-b6e9-bd551577e9d8> | |
Mon, 23 Jun 2008 05:59:27 +0000 (05:59 +0000) |
There is now only one problem left, if we are only allowed to modify ourself, we can see the user administration too.
There is only our user entry listed, but this may be a cosmetic issue.
git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@11401 594d385d-05f5-0310-b6e9-bd551577e9d8
There is only our user entry listed, but this may be a cosmetic issue.
git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@11401 594d385d-05f5-0310-b6e9-bd551577e9d8
gosa-core/include/class_pluglist.inc | patch | blob | history |
index 095620859bb274fa94c9980fad2961105ff08d62..54b5c67644a0df08132bb5b74ba0615f1a5f1ef0 100644 (file)
}
+ /*! \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);
}
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
+ <plugin acl="users/user:self" class="user"...
+ */
+ if(preg_match("/:self$/",$acl_to_check)){
+ $acl_to_check = preg_replace("/:self$/","",$acl_to_check);
+ if($this->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);
+ if(count($deps)) return TRUE;
+ }
}
return (FALSE);
}
+
function gen_headlines()
{
$ret = array();
}
}
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
?>