diff --git a/doc/getting_started/install.rst b/doc/getting_started/install.rst index dce643e24..12195a9ec 100644 --- a/doc/getting_started/install.rst +++ b/doc/getting_started/install.rst @@ -49,7 +49,8 @@ tarball. Fortunately, all major distributions include a ready-to-use package. On Debian/Ubuntu:: - $ apt-get install python-rrdtool + $ apt-get install libcairo2-dev libpango1.0-dev librrd-dev + $ pip install python-rrdtool .. _database: diff --git a/doc/integration/imap_servers.rst b/doc/integration/imap_servers.rst index d7ecd2af1..f4cf5c97d 100644 --- a/doc/integration/imap_servers.rst +++ b/doc/integration/imap_servers.rst @@ -49,8 +49,8 @@ For *MySQL* users, edit your */etc/dovecot/dovecot-sql.conf* and modify followin driver = mysql connect = host= dbname= user= password= default_pass_scheme = CRYPT - password_query = SELECT email AS user, password FROM auth_user WHERE email='%u' and is_active=1 - user_query = SELECT concat(dom.name, '/', mb.path) AS home, uid, gid FROM admin_mailbox mb INNER JOIN auth_user user ON mb.user_id=user.id INNER JOIN admin_domain dom ON mb.domain_id=dom.id WHERE mb.address='%n' AND dom.name='%d' AND user.is_active=1 AND dom.enabled=1 + password_query = SELECT email AS user, password FROM admin_user WHERE email='%u' and is_active=1 + user_query = SELECT concat(dom.name, '/', mb.path) AS home, uid, gid FROM admin_mailbox mb INNER JOIN admin_user user ON mb.user_id=user.id INNER JOIN admin_domain dom ON mb.domain_id=dom.id WHERE mb.address='%n' AND dom.name='%d' AND user.is_active=1 AND dom.enabled=1 Enable quota support ==================== diff --git a/doc/integration/smtp_servers.rst b/doc/integration/smtp_servers.rst index 8cecdaa05..f139c2d81 100644 --- a/doc/integration/smtp_servers.rst +++ b/doc/integration/smtp_servers.rst @@ -66,7 +66,7 @@ Define the following map files on your server (it should work with password = dbname = hosts = 127.0.0.1 - query = SELECT concat(dom.name, '/', mb.path, (SELECT value FROM lib_parameter WHERE name='admin.MAILDIR_ROOT'), '/') FROM admin_mailbox mb INNER JOIN admin_domain dom ON mb.domain_id=dom.id INNER JOIN auth_user user ON mb.user_id=user.id WHERE dom.enabled=1 AND dom.name='%d' AND user.is_active=1 AND mb.address='%u' + query = SELECT concat(dom.name, '/', mb.path, (SELECT value FROM lib_parameter WHERE name='admin.MAILDIR_ROOT'), '/') FROM admin_mailbox mb INNER JOIN admin_domain dom ON mb.domain_id=dom.id INNER JOIN admin_user user ON mb.user_id=user.id WHERE dom.enabled=1 AND dom.name='%d' AND user.is_active=1 AND mb.address='%u' ``/etc/postfix/sql-aliases.cf``:: @@ -90,7 +90,7 @@ Define the following map files on your server (it should work with password = dbname = hosts = 127.0.0.1 - query = SELECT concat(mb.address, '@', dom.name) FROM admin_mailbox mb INNER JOIN admin_domain dom ON mb.domain_id=dom.id INNER JOIN auth_user user ON mb.user_id=user.id WHERE dom.name='%d' AND dom.enabled=1 AND mb.address='%u' AND user.is_active=1 + query = SELECT concat(mb.address, '@', dom.name) FROM admin_mailbox mb INNER JOIN admin_domain dom ON mb.domain_id=dom.id INNER JOIN admin_user user ON mb.user_id=user.id WHERE dom.name='%d' AND dom.enabled=1 AND mb.address='%u' AND user.is_active=1 ``/etc/postfix/sql-catchall-aliases.cf``:: @@ -157,6 +157,6 @@ environnement, you need to modify the SQL query corresponding to the */etc/postfix/maps/sql-mailboxes.cf* and modify the ``query`` parameter as follow:: - query = SELECT concat(dom.name, '/', mb.path) FROM admin_mailbox mb INNER JOIN admin_domain dom ON mb.domain_id=dom.id INNER JOIN auth_user user ON mb.user_id=user.id WHERE dom.enabled=1 AND dom.name='%d' AND user.is_active=1 AND mb.address='%u' + query = SELECT concat(dom.name, '/', mb.path) FROM admin_mailbox mb INNER JOIN admin_domain dom ON mb.domain_id=dom.id INNER JOIN admin_user user ON mb.user_id=user.id WHERE dom.enabled=1 AND dom.name='%d' AND user.is_active=1 AND mb.address='%u' Restart *Postfix*. diff --git a/modoboa/core/commands/postfix_maps.py b/modoboa/core/commands/postfix_maps.py index f6eaf1b16..e774fc599 100644 --- a/modoboa/core/commands/postfix_maps.py +++ b/modoboa/core/commands/postfix_maps.py @@ -39,8 +39,8 @@ class DomainsAliasesMap(MapFile): class MailboxesMap(MapFile): filename = 'sql-mailboxes.cf' - mysql = "SELECT concat(dom.name, '/', mb.path) FROM admin_mailbox mb INNER JOIN admin_domain dom ON mb.domain_id=dom.id INNER JOIN auth_user user ON mb.user_id=user.id WHERE dom.enabled=1 AND dom.name='%d' AND user.is_active=1 AND mb.address='%u'" - postgres = "SELECT dom.name || '/' || mb.path FROM admin_mailbox mb INNER JOIN admin_domain dom ON mb.domain_id=dom.id INNER JOIN auth_user u ON mb.user_id=u.id WHERE dom.enabled AND dom.name='%d' AND u.is_active AND mb.address='%u'" + mysql = "SELECT concat(dom.name, '/', mb.path) FROM admin_mailbox mb INNER JOIN admin_domain dom ON mb.domain_id=dom.id INNER JOIN admin_user user ON mb.user_id=user.id WHERE dom.enabled=1 AND dom.name='%d' AND user.is_active=1 AND mb.address='%u'" + postgres = "SELECT dom.name || '/' || mb.path FROM admin_mailbox mb INNER JOIN admin_domain dom ON mb.domain_id=dom.id INNER JOIN admin_user u ON mb.user_id=u.id WHERE dom.enabled AND dom.name='%d' AND u.is_active AND mb.address='%u'" class AliasesMap(MapFile): filename = 'sql-aliases.cf' @@ -54,8 +54,8 @@ class DomainAliasesMailboxesMap(MapFile): class Email2EmailMap(MapFile): filename = 'sql-email2email.cf' - mysql = "SELECT concat(mb.address, '@', dom.name) FROM admin_mailbox mb INNER JOIN admin_domain dom ON mb.domain_id=dom.id INNER JOIN auth_user user ON mb.user_id=user.id WHERE dom.name='%d' AND dom.enabled=1 AND mb.address='%u' AND user.is_active=1" - postgres = "SELECT mb.address || '@' || dom.name FROM admin_mailbox mb INNER JOIN admin_domain dom ON mb.domain_id=dom.id INNER JOIN auth_user u ON mb.user_id=u.id WHERE dom.name='%d' AND dom.enabled AND mb.address='%u' AND u.is_active" + mysql = "SELECT concat(mb.address, '@', dom.name) FROM admin_mailbox mb INNER JOIN admin_domain dom ON mb.domain_id=dom.id INNER JOIN admin_user user ON mb.user_id=user.id WHERE dom.name='%d' AND dom.enabled=1 AND mb.address='%u' AND user.is_active=1" + postgres = "SELECT mb.address || '@' || dom.name FROM admin_mailbox mb INNER JOIN admin_domain dom ON mb.domain_id=dom.id INNER JOIN admin_user u ON mb.user_id=u.id WHERE dom.name='%d' AND dom.enabled AND mb.address='%u' AND u.is_active" class CatchallAliasesMap(MapFile): filename = 'sql-catchall-aliases.cf'