You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

55 lines
1.4 KiB

<?php
// (c) Copyright by authors of the Tiki Wiki CMS Groupware Project
//
// All Rights Reserved. See copyright.txt for details and a complete list of authors.
// Licensed under the GNU LESSER GENERAL PUBLIC LICENSE. See license.txt for details.
// $Id$
class LdapLib extends TikiLib
{
/**
* Retrieve a specific field from a LDAP filter.
*
* @param str $dsn
* @param str $filter
* @param str $field
* @param bool $all : return all records if true
* @return str or array if $all = true
*/
public function get_field($dsn, $filter, $field, $all = false)
{
// Force autoloading
if (! class_exists('ADOConnection')) {
return null;
}
// Try to connect
$ldaplink = ADONewConnection($dsn);
$return = null;
if (! $ldaplink) {
// Wrong DSN
return $return;
}
$ldaplink->SetFetchMode(ADODB_FETCH_ASSOC);
$rs = $ldaplink->Execute($filter);
if ($rs) {
while ($arr = $rs->FetchRow()) {
if (isset($arr[$field])) {
// Retrieve field
$return[] = $arr[$field];
if ($all === false) {
break;
}
}
}
}
// Disconnect
$ldaplink->Close();
return ($all ? $return : array_shift($return)) ;
}
}