# HG changeset patch # User Pascal Volk # Date 1250490674 0 # Node ID e35755191ff3c216d9ee446a2be4a6f660067e45 # Parent d1f345f91e1cd791e0933443fc81095551ec2d9e Config: renamed services.managesieve to services.sieve, added misc.dovecotvers diff -r d1f345f91e1c -r e35755191ff3 VirtualMailManager/Account.py --- a/VirtualMailManager/Account.py Mon Aug 17 04:56:13 2009 +0000 +++ b/VirtualMailManager/Account.py Mon Aug 17 06:31:14 2009 +0000 @@ -75,18 +75,20 @@ def _switchState(self, state, service): if not isinstance(state, bool): return False - if not service in ['smtp', 'pop3', 'imap', 'managesieve', 'all', None]: + if not service in ['smtp', 'pop3', 'imap', 'sieve', 'all', None]: raise AccE(_(u"Unknown service »%s«.") % service, ERR.UNKNOWN_SERVICE) if self._uid < 1: raise AccE(_(u"The account »%s« doesn't exists.") % self._addr, ERR.NO_SUCH_ACCOUNT) dbc = self._dbh.cursor() - if service in ['smtp', 'pop3', 'imap', 'managesieve']: + if service in ['smtp', 'pop3', 'imap', 'sieve']: dbc.execute( "UPDATE users SET %s=%s WHERE local_part='%s' AND gid=%s" % (service, state, self._addr._localpart, self._gid)) elif state: + # TODO + # add dovecotvers check dbc.execute("UPDATE users SET smtp = TRUE, pop3 = TRUE,\ imap = TRUE, managesieve = TRUE WHERE local_part = %s AND gid = %s", self._addr._localpart, self._gid) @@ -128,15 +130,17 @@ def disable(self, service=None): self._switchState(False, service) - def save(self, maillocation, smtp, pop3, imap, managesieve): + def save(self, maillocation, smtp, pop3, imap, sieve): if self._uid < 1: self._prepare(maillocation) dbc = self._dbh.cursor() + # TODO + # add dovecotvers check dbc.execute("""INSERT INTO users (local_part, passwd, uid, gid,\ mid, tid, smtp, pop3, imap, managesieve)\ VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s)""", self._addr._localpart, self._passwd, self._uid, self._gid, - self._mid, self._tid, smtp, pop3, imap, managesieve) + self._mid, self._tid, smtp, pop3, imap, sieve) self._dbh.commit() dbc.close() else: @@ -166,6 +170,8 @@ def getInfo(self): dbc = self._dbh.cursor() + # TODO + # add dovecotvers check dbc.execute("SELECT name, uid, gid, mid, tid, smtp, pop3, imap, \ managesieve FROM users WHERE local_part=%s AND gid=%s", self._addr._localpart, self._gid) @@ -176,9 +182,9 @@ ERR.NO_SUCH_ACCOUNT) else: keys = ['name', 'uid', 'gid', 'maildir', 'transport', 'smtp', - 'pop3', 'imap', 'managesieve'] + 'pop3', 'imap', 'sieve'] info = dict(zip(keys, info)) - for service in ['smtp', 'pop3', 'imap', 'managesieve']: + for service in ['smtp', 'pop3', 'imap', 'sieve']: if bool(info[service]): info[service] = _('enabled') else: diff -r d1f345f91e1c -r e35755191ff3 VirtualMailManager/Config.py --- a/VirtualMailManager/Config.py Mon Aug 17 04:56:13 2009 +0000 +++ b/VirtualMailManager/Config.py Mon Aug 17 06:31:14 2009 +0000 @@ -63,7 +63,7 @@ ['smtp', 'true'], ['pop3', 'true'], ['imap', 'true'], - ['managesieve', 'true'] + ['sieve', 'true'] ] self.__domdopts = [ ['base', '/srv/mail'], @@ -79,7 +79,8 @@ ['passwdscheme', 'PLAIN'], ['gid_mail', 8], ['forcedel', 'false'], - ['transport', 'dovecot:'] + ['transport', 'dovecot:'], + ['dovecotvers', '11'] ] def load(self): diff -r d1f345f91e1c -r e35755191ff3 VirtualMailManager/VirtualMailManager.py --- a/VirtualMailManager/VirtualMailManager.py Mon Aug 17 04:56:13 2009 +0000 +++ b/VirtualMailManager/VirtualMailManager.py Mon Aug 17 06:31:14 2009 +0000 @@ -601,7 +601,7 @@ self.__Cfg.getboolean('services', 'smtp'), self.__Cfg.getboolean('services', 'pop3'), self.__Cfg.getboolean('services', 'imap'), - self.__Cfg.getboolean('services', 'managesieve')) + self.__Cfg.getboolean('services', 'sieve')) self.__mailDirMake(acc.getDir('domain'), acc.getUID(), acc.getGID()) def aliasAdd(self, aliasaddress, targetaddress): diff -r d1f345f91e1c -r e35755191ff3 man/de/man1/vmm.1 --- a/man/de/man1/vmm.1 Mon Aug 17 04:56:13 2009 +0000 +++ b/man/de/man1/vmm.1 Mon Aug 17 06:31:14 2009 +0000 @@ -1,4 +1,4 @@ -.TH "VMM" "1" "5. Okt 2008" "Pascal Volk" +.TH "VMM" "1" "17 Aug 2009" "Pascal Volk" .SH NAME vmm \- Programm für die Kommandozeile, um E-Mail-Domains, -Konten und -Aliase zu verwalten. @@ -54,11 +54,13 @@ Beispiel: \fBvmm configure services\fP + Verwende Konfigurationsdatei: /usr/local/etc/vmm.cfg + * Konfigurations Abschnitt: »services« Neuer Wert für Option pop3 [True]: Neuer Wert für Option smtp [True]: Neuer Wert für Option imap [True]: - Neuer Wert für Option managesieve [True]: false + Neuer Wert für Option sieve [True]: false .fi .PP .TP @@ -325,7 +327,7 @@ Zugriff mit diesem Unterbefehl beschränkt werden. .br Wurde weder ein \fIService\fP noch das Schlüsselwort '\fIall\fP' angegeben, -werden alle Services (\fIsmtp\fP, \fIpop3\fP, \fIimap\fP, und \fImanagesieve\fP) +werden alle Services (\fIsmtp\fP, \fIpop3\fP, \fIimap\fP, und \fIsieve\fP) für das Konto mit der angegebenen \fIAdresse\fP deaktiviert. .br Andernfalls wird nur der Zugriff auf den angegeben \fIService\fP gesperrt. @@ -343,7 +345,7 @@ dieser Unterbefehl verwendet. .br Wurde weder ein \fIService\fP noch das Schlüsselwort '\fIall\fP' angegeben, -werden alle Services (\fIsmtp\fP, \fIpop3\fP, \fIimap\fP, und \fImanagesieve\fP) +werden alle Services (\fIsmtp\fP, \fIpop3\fP, \fIimap\fP, und \fIsieve\fP) für das Konto mit der angegebenen \fIAdresse\fP aktiviert. .br Andernfalls wird nur der Zugriff auf den angegeben \fIService\fP gestattet. diff -r d1f345f91e1c -r e35755191ff3 man/de/man5/vmm.cfg.5 --- a/man/de/man5/vmm.cfg.5 Mon Aug 17 04:56:13 2009 +0000 +++ b/man/de/man5/vmm.cfg.5 Mon Aug 17 06:31:14 2009 +0000 @@ -1,4 +1,4 @@ -.TH vmm.cfg 5 "08 Dez 2008" "Pascal Volk" +.TH vmm.cfg 5 "17 Aug 2009" "Pascal Volk" .SH NAME vmm.cfg \- Konfigurationsdatei für vmm .SH SYNOPSIS @@ -138,7 +138,7 @@ \fBimap\fP (\fIBoolean\fP) Legt fest, ob sich ein Anwender standardmäßig per IMAP einloggen kann. .TP -\fBmanagesieve\fP (\fIBoolean\fP) +\fBsieve\fP (\fIBoolean\fP) Legt fest, ob sich ein Anwender standardmäßig per MANAGESIEVE einloggen kann. .TP \fBBeispiel\fP: @@ -150,7 +150,7 @@ .br imap = false .br -managesieve = false +sieve = false .\" ----- .SH DOMDIR ABSCHNITT Im \fBdomdir\fP-Abschnitt werden die Optionen der Domain-Verzeichnisse bestimmt. @@ -221,6 +221,14 @@ \fBtransport\fP (\fIString\fP) Der Standard-Transport aller Domains und Konten. .TP +\fBdovecotvers\fP (\fIInt\fP) +Die verketteten Major- und Minor-Teile der eingesetzten Dovecot-Version +(siehe: dovecot --version). +.br +Diese Option beeinflusst diverse Datenbankzugriffe. Da es zwischen Dovecot +v1.1.x und v1.2.x einige Änderungen gab. Zum Beispiel \fB11\fP, falls +\fBdovecot --version\fP den Wert \fB1.1\fP.18 ausgibt. +.TP \fBBeispiel\fP: [misc] .br @@ -231,6 +239,8 @@ forcedel = false .br transport = dovecot: +.br +dovecotvers = 11 .\" ----- .SH CONFIG ABSCHNITT Beim \fBconfig\fP-Abschnitt handelt es sich um einen internen diff -r d1f345f91e1c -r e35755191ff3 man/man1/vmm.1 --- a/man/man1/vmm.1 Mon Aug 17 04:56:13 2009 +0000 +++ b/man/man1/vmm.1 Mon Aug 17 06:31:14 2009 +0000 @@ -1,4 +1,4 @@ -.TH "VMM" "1" "5 Oct 2008" "Pascal Volk" +.TH "VMM" "1" "17 Aug 2009" "Pascal Volk" .SH NAME vmm \- command line tool to manage email domains/accounts/aliases .SH SYNOPSIS @@ -52,11 +52,13 @@ Example: \fBvmm configure services\fP + Using configuration file: /usr/local/etc/vmm.cfg + * Config section: »services« Enter new value for option pop3 [True]: Enter new value for option smtp [True]: Enter new value for option imap [True]: - Enter new value for option managesieve [True]: false + Enter new value for option sieve [True]: false .fi .PP .TP @@ -307,8 +309,8 @@ access with this subcommand. .br If neither a \fIservice\fP nor the keyword '\fIall\fP' is given all services -(\fIsmtp\fP, \fIpop3\fP, \fIimap\fP, and \fImanagesieve\fP) will be disabled -for the account with the specified \fIaddress\fP. Otherwise only the specified +(\fIsmtp\fP, \fIpop3\fP, \fIimap\fP, and \fIsieve\fP) will be disabled for the +account with the specified \fIaddress\fP. Otherwise only the specified \fIservice\fP will be restricted. .PP .nf @@ -322,8 +324,8 @@ To allow access to one or all restricted services use this subcommand. .br If neither a \fIservice\fP nor the keyword '\fIall\fP' is given all services -(\fIsmtp\fP, \fIpop3\fP, \fIimap\fP, and \fImanagesieve\fP) will be enabled for -the account with the specified \fIaddress\fP. Otherwise only the specified +(\fIsmtp\fP, \fIpop3\fP, \fIimap\fP, and \fIsieve\fP) will be enabled for the +account with the specified \fIaddress\fP. Otherwise only the specified \fIservice\fP will be enabled. .PP .TP diff -r d1f345f91e1c -r e35755191ff3 man/man5/vmm.cfg.5 --- a/man/man5/vmm.cfg.5 Mon Aug 17 04:56:13 2009 +0000 +++ b/man/man5/vmm.cfg.5 Mon Aug 17 06:31:14 2009 +0000 @@ -1,4 +1,4 @@ -.TH vmm.cfg 5 "08 Dec 2008" "Pascal Volk" +.TH vmm.cfg 5 "17 Aug 2009" "Pascal Volk" .SH NAME vmm.cfg \- configuration file for vmm .SH SYNOPSIS @@ -127,7 +127,7 @@ \fBimap\fP (\fIBoolean\fP) Decides if users can login via imap by default. .TP -\fBmanagesieve\fP (\fIBoolean\fP) +\fBsieve\fP (\fIBoolean\fP) Decides if users can login via managesieve by default. .TP \fBExample\fP: @@ -139,7 +139,7 @@ .br imap = false .br -managesieve = false +sieve = false .\" ----- .SH DOMDIR SECTION The \fBdomdir\fP section is used to specify options for the directories of the @@ -208,6 +208,14 @@ \fBtransport\fP (\fIString\fP) Default transport for domains and accounts. .TP +\fBdovecotvers\fP (\fIInt\fP) +The concatenated major and minor version number of the currently used Dovecot +version. (see: dovecot --version). +.br +This option affects various database operations. There are some differences +between Dovecot v1.1.x and v1.2.x. For example, when the command \fBdovecot +--version\fP shows \fB1.1\fP.18, set the value of this option to \fB11\fP. +.TP \fBExample\fP: [misc] .br @@ -218,6 +226,8 @@ forcedel = false .br transport = dovecot: +.br +dovecotvers = 11 .\" ----- .SH CONFIG SECTION The \fBconfig\fP section is a internal used control section. diff -r d1f345f91e1c -r e35755191ff3 vmm --- a/vmm Mon Aug 17 04:56:13 2009 +0000 +++ b/vmm Mon Aug 17 06:31:14 2009 +0000 @@ -94,11 +94,11 @@ or vmm.cfgGetBoolean('maildir', 'diskusage'): order = (('address', 0), ('name', 0), ('uid', 1), ('gid', 1), ('transport', 0), ('maildir', 0), ('disk usage', 0), - ('smtp', 1), ('pop3', 1), ('imap', 1), ('managesieve', 1)) + ('smtp', 1), ('pop3', 1), ('imap', 1), ('sieve', 1)) else: order = (('address', 0), ('name', 0), ('uid', 1), ('gid', 1), ('transport', 0), ('maildir', 0), ('smtp', 1), ('pop3', 1), - ('imap', 1), ('managesieve', 1)) + ('imap', 1), ('sieve', 1)) elif argv[1] in ['gu', 'getuser']: order = (('uid', 1), ('gid', 1), ('address', 0)) return order diff -r d1f345f91e1c -r e35755191ff3 vmm.cfg --- a/vmm.cfg Mon Aug 17 04:56:13 2009 +0000 +++ b/vmm.cfg Mon Aug 17 06:31:14 2009 +0000 @@ -1,5 +1,5 @@ -# This is the Virtual Mail Manager (vmm) configuration file. -# location: /usr/local/etc/vmm.cfg +# This is the vmm (a virtual mail manager) configuration file. +# default location: /usr/local/etc/vmm.cfg # # @@ -43,7 +43,7 @@ ; allow imap by default? (Boolean) imap = true ; allow managesieve by default? (Boolean) -managesieve = true +sieve = true # # domain directory settings @@ -65,7 +65,7 @@ dovecotpw = /usr/sbin/dovecotpw ; location of disk usage (String) du = /usr/bin/du -; location of postconf +; location of postconf (String) postconf = /usr/sbin/postconf # @@ -80,6 +80,9 @@ forcedel = false ; default transport for domains and accounts transport = dovecot: +; the concatenated major and minor version number from `dovecot --version` (Int) +; e.g. 1.0.15 -> 10; 1.1.18 -> 11; 1.2.3 -> 12 +dovecotvers = 11 # # Configuration state