X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=gosa-core%2Finclude%2Fclass_acl.inc;h=19bde859ef949ad4d2c218dae64b68204cf9a6c0;hb=0a68aa232f4d9317a90c34912577d2ef7b3c1440;hp=150fda298e06e7e6f310c6ada312674ae2578d2a;hpb=9b13566e67425539ebedefad0185be3c68936c9a;p=gosa.git diff --git a/gosa-core/include/class_acl.inc b/gosa-core/include/class_acl.inc index 150fda298..19bde859e 100644 --- a/gosa-core/include/class_acl.inc +++ b/gosa-core/include/class_acl.inc @@ -87,7 +87,18 @@ class acl extends plugin $ldap->search('(&(objectClass=gosaAccount)(gosaUnitTag='.$tag.'))', array('uid', 'cn')); } while ($attrs= $ldap->fetch()){ - $this->users['U:'.$attrs['dn']]= $attrs['cn'][0].' ['.$attrs['uid'][0].']'; + + // Allow objects without cn to be listed without causing an error. + if(!isset($attrs['cn'][0]) && isset($attrs['uid'][0])){ + $this->users['U:'.$attrs['dn']]= $attrs['uid'][0]; + }elseif(!isset($attrs['uid'][0]) && isset($attrs['cn'][0])){ + $this->users['U:'.$attrs['dn']]= $attrs['cn'][0]; + }elseif(!isset($attrs['uid'][0]) && !isset($attrs['cn'][0])){ + $this->users['U:'.$attrs['dn']]= $attrs['dn']; + }else{ + $this->users['U:'.$attrs['dn']]= $attrs['cn'][0].' ['.$attrs['uid'][0].']'; + } + } ksort($this->users); @@ -759,14 +770,14 @@ class acl extends plugin "\n ". "\n "._("Object").": $name". "\n ". - "\n ". + "\n ". "\n "; } else if (isset($_SERVER['HTTP_USER_AGENT']) && preg_match("/ie/i",$_SERVER['HTTP_USER_AGENT'])) { $display.= "\n". "\n ". "\n ". "\n ". + "\n ". "\n "; } else { $display.= "\n
"._("Object").": $name". - "\n
". @@ -1057,20 +1068,22 @@ class acl extends plugin } } + /* Summarize members */ - if ($summary != ""){ - $summary.= ", "; - } - if (count($entry['members'])){ - $summary.= _("Members").": "; - foreach ($entry['members'] as $cn){ - $cn= preg_replace('/ \[.*$/', '', $cn); - $summary.= $cn.", "; + if(!($this instanceOf aclrole)){ + if ($summary != ""){ + $summary.= ", "; + } + if (count($entry['members'])){ + $summary.= _("Members").": "; + foreach ($entry['members'] as $cn){ + $cn= preg_replace('/ \[.*$/', '', $cn); + $summary.= $cn.", "; + } + } else { + $summary.= ""._("inactive")." - "._("No members").""; } - } else { - $summary.= _("ACL takes effect for all users"); } - return (preg_replace('/, $/', '', $summary)); } @@ -1205,7 +1218,7 @@ class acl extends plugin } if (!$ldap->success()){ - msg_dialog::display(_("LDAP error"), msgPool::ldaperror($ldap->get_error(), $this->dn, LDAP_MOD, get_class())); + msg_dialog::display(_("LDAP error"), msgPool::ldaperror($ldap->get_error(), $this->dn, LDAP_MOD, get_class()), ERROR_DIALOG); } /* Refresh users ACLs */