<quote who="Howard Chu">
Gavin Henry wrote:
> Julien Garnier wrote:
>> Gavin Henry a écrit :
>>> Yes, as I thought. Translucent doesn't return searches on local
>>> attributes.
>>>
>>> One for the to do list then.
Yes... The original spec for this overlay only required the ability to
search
the remote DB. Searching both requires quite a lot more work.
I agree, after poking at the code with my beginner skills.
One sticking point is that search filters need to be munged; if you send a
filter to the remote server and it mentions attributes that are only known
on
the local server, then you may not get any results back at all. (And vice
versa.)
Right.
E.g., if you have a remote entry containing
uid=foo
and the local translucent entry containing
cn=bar
and you search for (&(uid=foo)(cn=bar)) then the search will return no
results
unless you rewrite the filter on both the local side and the remote side.
A solution here would be to add config keywords to control how filters
should
be handled. For any attribute used in a filter, it may be remote only,
local
only, or both local and remote.
That could work, as long as you have the correct indexes on local and
remote so as not to be a complete hog.
The processing would go something like -
for the remote search, walk through the filter and nullify any clauses
that
aren't in the list of remote attributes. If the filter collapses down to
nothing, skip the remote search. Otherwise, execute the search and keep a
list
of the results.
Right.
for the local search, process the filter as above; if the filter
collapses,
skip the local search. Otherwise, execute the search and keep a list of
the
results.
Right.
for each entry in the remote list, look for a corresponding entry in
the
local list and the local DB. Merge the entries.
for each entry in the local list, do likewise.
merge the lists
reprocess the list using the original filter.
Quite a lot of steps.
Agreed.
My original plan was to merge a remote with a local *and* use rwm to setup
different ou etc. for Asterisk Voip accounts to try and map these users to
any foreign Directory ;-)
Stick rwm in the overlay stack somewhere for a laugh.
Gavin.