diff --git a/include/class_userinfo.inc b/include/class_userinfo.inc index e7833755cb3b2bfd4d62c15c8cb3bff89cb3d6d9..7c35f5744b192140047736188c25d19aa9d3251e 100644 --- a/include/class_userinfo.inc +++ b/include/class_userinfo.inc @@ -107,6 +107,12 @@ class userinfo $ldap->cd($this->config->current['BASE']); /* Get member groups... */ + $ldap->search('(&(objectClass=groupOfNames)(member='.ldap_escape_f($this->dn).'))', array('dn')); + while ($attrs = $ldap->fetch()) { + $this->groups[$attrs['dn']] = $attrs['dn']; + } + + /* Get member POSIX groups... */ $ldap->search('(&(objectClass=posixGroup)(memberUid='.ldap_escape_f($this->uid).'))', array('dn')); while ($attrs = $ldap->fetch()) { $this->groups[$attrs['dn']] = $attrs['dn']; @@ -202,7 +208,7 @@ class userinfo } } - /* Create an array which represenet all relevant permissions settings + /* Create an array which represent all relevant permissions settings per dn. The array will look like this: diff --git a/include/select/userGroupSelect/class_userGroupSelect.inc b/include/select/userGroupSelect/class_userGroupSelect.inc index e1c95f75db443012889e7fb742400168ca77716a..b3941a2b0606e31d617b61066453a44ae4b7f2f4 100644 --- a/include/select/userGroupSelect/class_userGroupSelect.inc +++ b/include/select/userGroupSelect/class_userGroupSelect.inc @@ -26,6 +26,6 @@ class userGroupSelect extends userSelect class userGroupRoleSelect extends userGroupSelect { - protected $objectTypes = array('user', 'group', 'role'); + protected $objectTypes = array('user', 'group', 'role', 'ogroup'); } ?> diff --git a/include/simpleplugin/class_dialogAttributes.inc b/include/simpleplugin/class_dialogAttributes.inc index cf68f02ec98e09960d82c509830534df75377df3..eedfeeb43aa4b1358980153c676d3b02809be5eb 100644 --- a/include/simpleplugin/class_dialogAttributes.inc +++ b/include/simpleplugin/class_dialogAttributes.inc @@ -412,9 +412,11 @@ class UsersGroupsAttribute extends GenericDialogAttribute if ($this->display_attr == 'dn') { $this->displays[$i] = $attrs['dn']; } elseif (in_array('posixGroup', $attrs['objectClass'])) { - $this->displays[$i] = sprintf(_('Group %s'), trim($attrs['cn'][0])); + $this->displays[$i] = sprintf(_('POSIX group %s'), trim($attrs['cn'][0])); } elseif (in_array('organizationalRole', $attrs['objectClass'])) { $this->displays[$i] = sprintf(_('Role %s'), trim($attrs['cn'][0])); + } elseif (in_array('groupOfNames', $attrs['objectClass'])) { + $this->displays[$i] = sprintf(_('Group %s'), trim($attrs['cn'][0])); } elseif (isset($attrs['uid'][0])) { $this->displays[$i] = trim($attrs['uid'][0]); } else {