LDAP without groups patch (Task #67)

darcs-hash:20050119185156-9977f-df12ad45548ce25c1f57ce6f71eb59a50ae8ba82.gz
This commit is contained in:
andi 2005-01-19 19:51:56 +01:00
parent 352d17dc3c
commit 97ec4e01c3
1 changed files with 17 additions and 11 deletions

View File

@ -86,6 +86,7 @@ function auth_checkPass($user,$pass){
* uid string Posix User ID
*
* @author Andreas Gohr <andi@splitbrain.org>
* @author Trouble
*/
function auth_getUserData($user){
global $conf;
@ -119,17 +120,22 @@ function auth_getUserData($user){
//primary group id
$gid = $result[0]['gidnumber'][0];
//get groups for given user
$filter = "(&(objectClass=posixGroup)(|(gidNumber=$gid)(memberUID=".$info['uid'].")))";
$sr = @ldap_search($conn, $cnf['grouptree'], $filter);
if(!$sr){
msg("LDAP: Reading group memberships failed",-1);
return false;
}
$result = ldap_get_entries($conn, $sr);
foreach($result as $grp){
if(!empty($grp['cn'][0]))
$info['grps'][] = $grp['cn'][0];
//get groups for given user if grouptree is given
if ($cnf['grouptree'] != '') {
$filter = "(&(objectClass=posixGroup)(|(gidNumber=$gid)(memberUID=".$info['uid'].")))";
$sr = @ldap_search($conn, $cnf['grouptree'], $filter);
if(!$sr){
msg("LDAP: Reading group memberships failed",-1);
return false;
}
$result = ldap_get_entries($conn, $sr);
foreach($result as $grp){
if(!empty($grp['cn'][0]))
$info['grps'][] = $grp['cn'][0];
}
}else{
//if no groups are available in LDAP always return the default group
$info['grps'][] = $conf['defaultgroup'];
}
return $info;
}