[dev] CyrSQL and SQL driver

Vilius Šumskas vilius at lnk.lt
Tue Jul 22 13:38:55 UTC 2008


> >> > Zitat von Vilius Šumskas <vilius at lnk.lt>:
> >>
> >> > As I said, if it's more work to change the sql driver to be more
> >> > flexible than to make the cyrussql stand-alone, then go for it. :)
> >>
> >> I was thinking about this back and forth and was still not sure what
> >> is the best way to handle all possible backend implementations (see:
> >> http://marc.info/?l=horde&m=121447306525089&w=2 for example). I have
> >> also  studied Cyrus driver and came up with the following idea:
> >>
> >> 1. Write couple of backend authentication "sub-modules" which
> >> represents not the backend technology (e.g. SQL) but actual backend
> >> used (e.g. Web-cyradm v.0.5.4 SQL Schema). They will have all
> necessary
> >> methods for backend manipulation. These "sub-modules" will *not* be
> >> listed under Authentication dropdown menu in Horde Configuration.
> >>
> >> 2. Rewrite/fix current Cyrus driver to allow the selection of
> >> "sub-modules" as the backend in the Configuration.
> >>
> >> 3. Deprecate CyrusSQL driver.
> >>
> >> Is this good enough or I have overlooked something along the way?
> >
> > Can someone comment on this or should I proceed?
> 
> I'm having a hard time to really follow your problems in that thread.
> AFAIU the problem is with virtual domain support that has been added
> with 2.2? Can you summarize which consequences this had when
> authenticating Cyrus against SQL?

OK, let me try to explain a little bit more.

Currently Cyrus has a lot of authentication backend variations, including but not limited to:

1. WebCyradm (SQL),
2. authceck (SQL),
3. Kolab (LDAP?),
4. Also it can live without one.

In webcyradm backend case, data is not constant even between minor versions. For example version 0.5.4 created users in accountuser table like "user" but in never released and unsupported version 0.5.5-cvs created them as "user at domain". I've always tried to bring Horde's CyrSQL driver as close as possible to 0.5.4 schema. But there are others who use different schemas, like Aleksey in http://marc.info/?l=horde&m=121447306525089&w=2. The problem is not with Cyrus itself, it is with authentication backend it is using. There are too many of them. Hence my proposal, to split SQL (or whatever) backend manipulation and IMAP parts in the driver. Auth/cyrus.php is a good example of that, it just needs to be extended to use *real* schemas not the other drivers.

Hope this makes some sense.

-- 
  Best Regards,

  Vilius Šumskas
  LNK TV IT manager
  mob.: +370 614 75713
  http://www.lnk.lt




More information about the dev mailing list