[horde] ActiveSync GAL setup help - search returns no contacts

James MacLean macleajb at ednet.ns.ca
Wed Feb 20 11:18:50 UTC 2013


On 02/20/2013 02:20 AM, Michael J Rubinsky wrote:
>
> Quoting "James B. MacLean" <macleajb at ednet.ns.ca>:
>
>> On 2013-02-07 2:06 AM, Michael J Rubinsky wrote:
>>>
>>> Quoting "James B. MacLean" <macleajb at ednet.ns.ca>:
>>>
>>>> So, no, I do not know if the LDAP server is being queried from the 
>>>> GAL function properly and I would like to trace that back, but, 
>>>> alas, my php skills for traversing where 
>>>> this->_registry->contacts->search() goes is beyond my skill :(.
>>>> Would you mind pointing out where that function is that is being 
>>>> called and I will keep digging in to it.
>>>
>>> This calls Turba_Api::search() (so, it's in turba/lib/Api.php). The 
>>> actual logic for the search that is called from Turba_Api::search() 
>>> is in a combination of Turba_Driver::search() (so, in 
>>> turba/lib/Driver.php) and Turba_Driver_Ldap::_search() (in 
>>> turba/lib/Driver/Ldap.php).
>>>
>> Ok, getting somewhere now. When you search within Horde in the 
>> "Global Address Book" the filter is :
>>
>> (|(givenname=Maclean, james)(sn=Maclean, 
>> james)(|(displayname=*Maclean, james*)(mail=*Maclean, james*)))
>>
>> Which ties in well with the use of 'strict' settings in 
>> turba/config/backends.local.php . When I do a search in ActiveSync, 
>> it looks like :
>>
>> (&(givenname=Maclean)(sn=Maclean)(|(displayname=*Maclean*)(mail=*Maclean*))) 
>>
>>
>> which will never match for me. The AND appears to be coming from :
>>
>> horde/turba/lib/Driver.php
>>
>> in
>>
>> public function makeSearch
>>
>> inside this if around line 460:
>>
>> if (count($strict_search) && count($search)) {
>>
>> changing that AND to OR gets things moving.
>
> That doesn't seem like the right fix.
>
> Can you see what the value of $query that is passed in to 
> Horde/Core/ActiveSync/Driver.php in the _searchGal() method? I'm 
> thinking I'm building that query incorrectly.
>
>

Added :

error_log("Q=" . print_r($query,true));

Searching for Macle :


Q=Array\n(\n    [query] => Macle\n    [range] => 0-50\n)\n

Was that what you wanted?

JES


More information about the horde mailing list