Bug #63820 [NEW]: Parallel search does not accept array of attribute arrays
From: rr dot rossmann at me dot com
Operating system: OS X
PHP version: 5.4.10
Package: LDAP related
Bug Type: Bug
Bug description:Parallel search does not accept array of attribute arrays
Description:
------------
When doing an ldap parallel search, it is not possible to specify the
attributes I want to retrieve per-query, only per operation.
I want to read a set of properties for a read operation of i.e.
OU=Computers,DC=example,DC=com and a different set of properties for
OU=Users,DC=example,DC=com . I want to do a parallel read operation by
combining all the query parameters (links, search bases etc.) into arrays,
but I cannot group the attributes arrays as such; I can only provide one
array with the attributes, otherwise only DN is returned in the resultset.
Test script:
---------------
$con = ldap_connect( 'example.com' );
ldap_set_option( $con, LDAP_OPT_PROTOCOL_VERSION, 3 );
ldap_set_option( $con, LDAP_OPT_REFERRALS, 0 );
ldap_bind( $con, 'User', 'password' );
// use the same connection for both read queries
$connections = array( $con, $con );
// Read attribs from Computers and Users containers
$dns = array( 'OU=Computers,DC=example,DC=com',
'OU=Users,DC=example,DC=com' );
// Needed for the read operation
$filters = array( '(objectclass=*)', '(objectclass=*)' );
$attribSet1 = array( 'name', 'objectclass' ); // attribs I want from
Computers
$attribSet2 = array( 'cn', 'objectcategory' ); // attribs I want from
Users
// Combining the attributes like this causes the erroneous behaviour
$getThese = array( $attribSet1 , $attribSet2 );
// Do a parallel read operation
$result_ids = ldap_read( $connections, $dns, $filters, $getThese );
$data0 = ldap_get_entries( $con, $result_ids[0] );
$data1 = ldap_get_entries( $con, $result_ids[1] );
print_r( $data0 ); // Only DN attribute retrieved
print_r( $data1 ); // Only DN attribute retrieved
/*
Doing the read query like this works, but I have to specify the attribute
set for the whole operation:
$result_ids = ldap_read( $connections, $dns, $filters, $getThese[0] );
*/
Expected result:
----------------
for print_r( $data0 ); I expect to have these attributes present:
name, objectclass
for print_r( $data1 ); I expect to have these attributes present:
cn, objectcategory
Actual result:
--------------
I get only dn attribute, which is returned for every ldap query
--
Edit bug report at https://bugs.php.net/bug.php?id=63820&edit=1
--
Try a snapshot (PHP 5.4): https://bugs.php.net/fix.php?id=63820&r=trysnapshot54
Try a snapshot (PHP 5.3): https://bugs.php.net/fix.php?id=63820&r=trysnapshot53
Try a snapshot (trunk): https://bugs.php.net/fix.php?id=63820&r=trysnapshottrunk
Fixed in SVN: https://bugs.php.net/fix.php?id=63820&r=fixed
Fixed in release: https://bugs.php.net/fix.php?id=63820&r=alreadyfixed
Need backtrace: https://bugs.php.net/fix.php?id=63820&r=needtrace
Need Reproduce Script: https://bugs.php.net/fix.php?id=63820&r=needscript
Try newer version: https://bugs.php.net/fix.php?id=63820&r=oldversion
Not developer issue: https://bugs.php.net/fix.php?id=63820&r=support
Expected behavior: https://bugs.php.net/fix.php?id=63820&r=notwrong
Not enough info: https://bugs.php.net/fix.php?id=63820&r=notenoughinfo
Submitted twice: https://bugs.php.net/fix.php?id=63820&r=submittedtwice
register_globals: https://bugs.php.net/fix.php?id=63820&r=globals
PHP 4 support discontinued: https://bugs.php.net/fix.php?id=63820&r=php4
Daylight Savings: https://bugs.php.net/fix.php?id=63820&r=dst
IIS Stability: https://bugs.php.net/fix.php?id=63820&r=isapi
Install GNU Sed: https://bugs.php.net/fix.php?id=63820&r=gnused
Floating point limitations: https://bugs.php.net/fix.php?id=63820&r=float
No Zend Extensions: https://bugs.php.net/fix.php?id=63820&r=nozend
MySQL Configuration Error: https://bugs.php.net/fix.php?id=63820&r=mysqlcfg
Thread (1 message)
- rr dot rossmann at me dot com