index ac194684bb0de7e588a47837541eec31ea7cf402..57d1fc3036033e49498fc9f418e9594d569ccc0f 100644 (file)
/* get acl's an put them into the userinfo object
attr subtreeACL (userdn:components, userdn:component1#sub1#sub2,component2,...) */
- function __construct(&$config, $userdn){
+ function userinfo(&$config, $userdn){
$this->config= &$config;
$ldap= $this->config->get_ldap_link();
$ldap->cat($userdn,array('sn', 'givenName', 'uid', 'gidNumber', 'preferredLanguage', 'gosaUnitTag', 'gosaLoginRestriction'));
if (preg_replace('/^U:/', '', $grp) == $this->dn){
$interresting= TRUE;
}
+
+ /* Wildcard? */
+ if (preg_match('/^G:\*/', $grp)){
+ $interresting= TRUE;
+ }
}
}
function get_category_permissions($dn, $category, $any_acl = FALSE)
{
- return(@$this->get_permissions($dn,$category.'/0',""));
+ return($this->get_permissions($dn,$category.'/0',""));
}
return($ret);
}
+ /* Check for correct category and class values... */
+ if(strpos($object,'/') !== FALSE){
+ list($aclCategory, $aclClass) = split("/", $object);
+ }else{
+ $aclCategory = $object;
+ }
+ if(!isset($this->ocMapping[$aclCategory])){
+ trigger_error("Invalid ACL category '".$aclCategory."'! ({$object})");
+ msg_dialog::display(_("Error"), "Invalid ACL category '".$aclCategory."'! ({$object})", ERROR_DIALOG);
+ return("");
+ }elseif(isset($aclClass) && !in_array($aclClass, $this->ocMapping[$aclCategory])){
+ trigger_error("Invalid ACL class '".$aclClass."'! ({$object})");
+ msg_dialog::display(_("Error"), "Invalid ACL class '".$aclClass."'! ({$object})", ERROR_DIALOG);
+ return("");
+ }
+
/* Detect the set of ACLs we have to check for this object
*/
$adn = $dn;