On Tue, 20 Oct 2009 17:57:35 +0200 Andreas Ntaflos <d...@dword.org> wrote:
> On Tuesday 20 October 2009 17:07:49 Timo Sirainen wrote: > > On Oct 20, 2009, at 9:45 AM, Andreas Ntaflos wrote: > > > I'd say you need a static userdb. Something like this: > > > > A couple of small things: > > > passdb sql { > > > args = /etc/dovecot/dovecot-sql.conf > > > } > > > > > > userdb static { > > > args = uid=vmail gid=vmail home=/var/vmail/%Ld/%Ln > > > allow_all_users=yes } > > > > %Ld/%Ln at this point works for now, but maybe not in future. I'd > > have passdb already change it lowercase. Also allow_all_users=yes > > isn't required (but maybe not harmful) since passdb sql is used. > > That's good to know, thanks. And you're right of course, the passdb > should already return the correct information, Dovecot shouldn't be > asked to change anything afterwards. > > Fortunately I myself don't use MySQL anymore but have migrated > everything to PostgreSQL. It does a much better job as a DBMS > (remote, secured access to the DB, fine-grained permissions and > rules) and also knows about case sensitivity. So foo...@example.com > is not the same as foo...@example.com. Which eliminates this problem > class altogether. MySQL, since at least 5.x knows about case. You can Google for the information if you want. > > > password_query = SELECT password FROM view_users WHERE email='%u'; > > > > SELECT password, email AS user FROM .. > > > > changes username to same case as it's in the database (so lowercase > > probably) and there's no need to use %L anymore. > > You mean something like > > SELECT password, LOWER(email) as user FROM view_users WHERE email='%u' > > should do the trick? I shall test this on my test server, just for > fun. > > Andreas -- Jerry |::::======= ges...@yahoo.com |::::======= |=========== |=========== | Woolsey-Swanson Rule: People would rather live with a problem they cannot solve rather than accept a solution they cannot understand.