index c410e70db7b47e410a67239eabdbcacc5f2fd813..36c5072553e9296ae2ec100b25c9e40d5103ce8f 100644 (file)
var $ocMapping= array();
var $groups= array();
var $result_cache =array();
- var $ignoreACl = FALSE;
+ var $ignoreACL = FALSE;
var $ACLperPath = array();
var $ACLperPath_usesFilter = array();
/* Inspect members... */
foreach ($type['members'] as $grp => $grpdsc){
+
/* Some group inside the members that is relevant for us? */
- if (in_array_ics(preg_replace('/^G:/', '', $grp), $this->groups)){
+ if (in_array_ics(@LDAP::convert(preg_replace('/^G:/', '', $grp)), $this->groups)){
$interresting= TRUE;
}
$without_self_acl = $all_acl = array();
foreach($this->ACL as $dn => $acl){
$sdn =$dn;
- while(strpos($dn,",") !== FALSE){
-
+ $first= TRUE; // Run at least once
+ while(strpos($dn,",") !== FALSE || $first){
+ $first = FALSE;
if(isset($this->ACL[$dn])){
$all_acl[$sdn][$dn] = $this->ACL[$dn];
$without_self_acl[$sdn][$dn] = $this->ACL[$dn];
/* Remove all acl entries which are especially for the current user (self acl)
*/
foreach($acl_set['acl'] as $object => $object_acls){
- if(strpos($object_acls[0],"s")){
+ if(isset($object_acls[0]) && strpos($object_acls[0],"s")){
unset($without_self_acl[$sdn][$dn][$acl_id]['acl'][$object]);
}
}