if(empty($dn)){
//anonymous bind to lookup users
//blank binddn or blank bindpw will result in anonymous bind
- if(!ldap_bind($LDAP_CON,$conf['anonbinddn'],$conf['anonbindpw'])){
+ if(!@ldap_bind($LDAP_CON,$conf['anonbinddn'],$conf['anonbindpw'])){
die("can not bind for user lookup");
}
}
//bind with dn
- if(ldap_bind($LDAP_CON,$dn,$pass)){
+ if(@ldap_bind($LDAP_CON,$dn,$pass)){
//bind successful -> set up session
set_session($user,$pass,$dn);
return true;
$out[$FIELDS["_$key"]][] = $value; //shouldn't happen, but to be sure
}
}else{
- // no mapping found - assume it to be a LDAP attribute (shouldn't happen)
- if(is_array($value)){
- $out[$key] = $value;
- }else{
- $out[$key][] = $value;
- }
+ // no mapping found we ignore it
}
}
+ // special tag handling for Thunderbird
+ if($conf['tbtaghack'] && in_array('contactPerson',$OCLASSES)){
+ if($in['marker'][0]) $out['custom1'][] = $in['marker'][0];
+ if($in['marker'][1]) $out['custom2'][] = $in['marker'][1];
+ if($in['marker'][2]) $out['custom3'][] = $in['marker'][2];
+ if($in['marker'][3]) $out['custom4'][] = $in['marker'][3];
+ }
+
+
// add the Objectclasses
$out['objectclass'] = $OCLASSES;
$add['objectClass'] = $set;
$r = @ldap_mod_replace($LDAP_CON,$dn,$add);
- tpl_ldaperror();
+ tpl_ldaperror('store object classes');
/* print '<pre>';
print_r($set);
$results = array();
$result1 = array();
$result2 = array();
+ $result3 = array();
// public addressbook
- $sr = ldap_list($LDAP_CON,$conf['publicbook'],
- $filter,$types);
+ $sr = @ldap_search($LDAP_CON,$conf['publicbook'],
+ $filter,$types);
+ tpl_ldaperror();
$result1 = ldap_get_binentries($LDAP_CON, $sr);
ldap_free_result($sr);
// private addressbook
- if(!empty($_SESSION['ldapab']['binddn'])){
+ if(!empty($_SESSION['ldapab']['binddn']) && $conf['privatebook']){
$sr = @ldap_list($LDAP_CON,$conf['privatebook'].
','.$_SESSION['ldapab']['binddn'],
$filter,$types);
+ if(ldap_errno($LDAP_CON) != 32) tpl_ldaperror(); // ignore missing address book
$result2 = ldap_get_binentries($LDAP_CON, $sr);
}
+ // user account entries
+ if ($conf['displayusertree']) {
+ $sr = @ldap_list($LDAP_CON,$conf['usertree'],
+ $filter,$types);
+ tpl_ldaperror();
+ $result3 = ldap_get_binentries($LDAP_CON, $sr);
+ ldap_free_result($sr);
+ }
+
+
+
// return merged results
- return array_merge((array)$result1,(array)$result2);
+ return array_merge((array)$result1,(array)$result2,(array)$result3);
}
/**
$return[] = $FIELDS[$f];
}elseif($FIELDS["_$f"]){
$return[] = $FIELDS["_$f"];
+ }elseif($f = 'markers'){
+ $return[] = 'marker';
}
}
return $return;