Feature #4923 » ldap-rfc2307.diff
| etc/inc/auth.inc | ||
|---|---|---|
| 919 | 919 |
$ldapauthcont = $authcfg['ldap_authcn']; |
| 920 | 920 |
$ldapnameattribute = strtolower($authcfg['ldap_attr_user']); |
| 921 | 921 |
$ldapgroupattribute = strtolower($authcfg['ldap_attr_member']); |
| 922 |
$ldapfilter = "({$ldapnameattribute}={$username})";
|
|
| 922 |
$ldapfilter = "(&(objectClass=posixGroup)({$ldapgroupattribute}={$username}))";
|
|
| 923 | 923 |
$ldaptype = ""; |
| 924 | 924 |
$ldapver = $authcfg['ldap_protver']; |
| 925 | 925 |
if (empty($ldapbindun) || empty($ldapbindpw)) |
| ... | ... | |
| 932 | 932 |
} else |
| 933 | 933 |
return false; |
| 934 | 934 | |
| 935 |
$ldapdn = $_SESSION['ldapdn'];
|
|
| 935 |
$ldapdn = $ldapbasedn;
|
|
| 936 | 936 | |
| 937 | 937 |
/*Convert attribute to lowercase. php ldap arrays put everything in lowercase */ |
| 938 | 938 |
$ldapgroupattribute = strtolower($ldapgroupattribute); |
| ... | ... | |
| 983 | 983 |
$info = @ldap_get_entries($ldap, $search); |
| 984 | 984 | |
| 985 | 985 |
$countem = $info["count"]; |
| 986 |
|
|
| 987 |
if(is_array($info[0][$ldapgroupattribute])) {
|
|
| 986 | ||
| 987 |
if(is_array($info)) {
|
|
| 988 | 988 |
/* Iterate through the groups and throw them into an array */ |
| 989 |
foreach ($info[0][$ldapgroupattribute] as $member) {
|
|
| 990 |
if (stristr($member, "CN=") !== false) {
|
|
| 991 |
$membersplit = explode(",", $member);
|
|
| 989 |
foreach ($info as $group) {
|
|
| 990 |
if (stristr($group["dn"], "CN=") !== false) {
|
|
| 991 |
$membersplit = explode(",", $group["dn"]);
|
|
| 992 | 992 |
$memberof[] = preg_replace("/CN=/i", "", $membersplit[0]);
|
| 993 | 993 |
} |
| 994 | 994 |
} |