Paul J Stevens wrote:
Aaron Stone wrote:
Paul J Stevens <[EMAIL PROTECTED]> said:
[snip] > Actually, some kind of UML redesign would really help
cleanup the code base (_ic_fetch, aarrrgh) and provide a better
handle for developing modules such as this. I know Dan was blasted
for suggesting this,
but I happen to agree with him on this one. Dbmail is *not* too
small for
well formed design patterns.
I did much of the UML blasting because although the goal -- better
modularization and structure -- is good, I don't think that UML is the
right tool for us. I'm particularly weary of over-modularization, I've
seen way too much code where someone thinks that because you've wrapped
incredible complexity into three lines of super high level calls,
that the
program is clean and efficient ("Well it's just three lines of code,
right?").
So maybe sometimes they were right :-) ? But you do have a point. I
wrote a couple of iterations of an ORB in php some years ago as part
of a cms framework. Only the code I wrote after studying proper
frameworks in python (esp zope and twisted) is still readable/usable.
I think I've come to appreciate some of the design problems involved.
Records like the DBMAIL_DELIVERY_USERNAME should exist in the sql
tables
only, right? I don't see the point of having such a user exist in
the ldap
database.
Yes, exactly. I've been wondering for a long time how to handle this. I
was hoping to simply leverage the pluggable database layer to also wrap
the auth functions, so that authldap->get_userid could make calls to
authsql->get_userid to use the database as a secondary authentication
source.
Not all sql calls involving users have to be implemented in authsql.
db.c seems like a pretty good place to me. Like I've stated before; in
my view the auth modules have been bloated beyond authentication. They
now more like represent mappings of the users and aliases structures
to the ldap/sql backend storage. A different beast all together.
Agreed. Splitting authentication and other user operations should be split.
These can all be renamed and moved to auth/.. quite
straightforwardly. Of
course they require reimplementation in the ldap layer.
I've done this, added stubs in authldap.c, and all is well. Builds
just fine with and without ldap and apps test ok without ldap.
So basically put some sql queries into authldap? Sounds fine to me.
No.
Put some db_ calls in authldap, no real sql queries. Those belong in
db.c or authsql.c
Agreed.
Unless Aaron (our most experienced ldap developer it seems) puts his
weight behind this, I don't see us finishing this any time real
soon. Even though
I'm aching for ldap support :-(
I do have time to work on this in the next week or two, so if, as I
oh-so
subtly suggested, save LDAP work until RC9, then I think we can do it.
I'm not sure its doable if we want a modicum of QA. Also, I want 2.0
out of the door, so we can start working on a unstable series. We have
cvs access but we can't really use it for development of new features
because of the current freeze. So let's release rc8, branch 2_0_branch
as a starting point for rc9, 2.0.0, and beyond, and open the head
branch for actual further development of all these new features.
rc8 was released yesterday.
I don't think rc9 have any change in the LDAP work. The code's there,
but we should not advertise it. There's no place in the docs where we
mention it. And we shouldn't, until it works. There is the
--with-auth-ldap configure option, but I've added a warning to that
("don't use, unstable").
I'll branch off dbmail_2_0_branch now, so all new stuff can go into the
trunk, and fixes for 2.0 can go into dbmail_2_0_branch.
Let's not hold off on today's RC8 just because of LDAP, we have tons of
other features and database migrations and so on to get tested and
straightened out, and the sooner the better on those.
right.
Ilja
--
Ilja Booij
IC&S B.V.
Stadhouderslaan 57
3583 JD Utrecht
www.ic-s.nl
T algemeen: 030 6355730
T direct: 030 6355739
F: 030 6355731
E: [EMAIL PROTECTED]