[OGo-Developer] big resource hog in SoObject

Wolfgang Sourdeau developer@opengroupware.org
Mon, 23 Jul 2007 08:35:34 -0400


On 2007-07-23 08:05:51 -0400 Helge Hess <helge.hess@opengroupware.org> 
wrote:

> On 23.07.2007, at 13:54, Wolfgang Sourdeau wrote:
>> Yes but if you override it, you lose the features that it has. Such  
>> as web 
>> method resolution...
> 
> Web methods are resolved by the SoClass? Just call
> 
>    if ((o = [[self soClass] lookupName...]) != nil)
>      return [o bindToObject:self inContext:_ctx];
> 
> Thats *really* easy.
> In fact its _very_ common that one wants to change the lookup method  
> to 
> speed up the lookup process. Eg in ZideStore object ids are always  
> numeric 
> and method names are never, allowing you to avoid either  lookup, the 
> same 
> goes for the SOGo mailer.

Ok. Then I could place this in SOGoObject. But it's a little pornish 
don't you think?

> But again: I think the real flaw is that toOneRelationshipKeys is  
> used 
> incorrectly in the SOGo LDAP controller. It should simply not  return 
> all IDs 
> of the LDAP folder. Adam's post is quite valid in that  context too.

For LDAP, that is another issue which I partly agree with... If the 
user expects to list all the entries of an LDAP directory, then it 
should happen... But for regular use, I do plan to limit the search 
results. And if you "connect" to an ldap addressbook from the web 
interface, nothing will show by default (same behaviour as 
Thunderbird). You *have* to do a search to get something.


Wolfgang