# HG changeset patch # User Pascal Volk # Date 1297573264 0 # Node ID 0c52094447b076256fa7888261218bebfef52fcc # Parent a4f5d4cd886d7010bd40cdaf968746c40652bf6b VMM/{account,domain}: Added a versions check to the update_quotalimit methods of classes Account and Domain. diff -r a4f5d4cd886d -r 0c52094447b0 VirtualMailManager/account.py --- a/VirtualMailManager/account.py Sun Feb 13 04:33:55 2011 +0000 +++ b/VirtualMailManager/account.py Sun Feb 13 05:01:04 2011 +0000 @@ -16,8 +16,8 @@ from VirtualMailManager.constants import \ ACCOUNT_EXISTS, ACCOUNT_MISSING_PASSWORD, ALIAS_PRESENT, \ INVALID_ARGUMENT, INVALID_MAIL_LOCATION, NO_SUCH_ACCOUNT, \ - NO_SUCH_DOMAIN, UNKNOWN_SERVICE -from VirtualMailManager.errors import AccountError as AErr + NO_SUCH_DOMAIN, UNKNOWN_SERVICE, VMM_ERROR +from VirtualMailManager.errors import VMMError, AccountError as AErr from VirtualMailManager.maillocation import MailLocation from VirtualMailManager.password import pwhash @@ -319,6 +319,9 @@ `quotalimit` : VirtualMailManager.quotalimit.QuotaLimit the new quota limit of the domain. """ + if cfg_dget('misc.dovecot_version') < 0x10102f00: + raise VMMError(_(u'PostgreSQL-based dictionary quota requires ' + u'Dovecot >= v1.1.2'), VMM_ERROR) self._chk_state() assert isinstance(quotalimit, QuotaLimit) if quotalimit == self._qlimit: diff -r a4f5d4cd886d -r 0c52094447b0 VirtualMailManager/domain.py --- a/VirtualMailManager/domain.py Sun Feb 13 04:33:55 2011 +0000 +++ b/VirtualMailManager/domain.py Sun Feb 13 05:01:04 2011 +0000 @@ -14,8 +14,8 @@ from VirtualMailManager.constants import \ ACCOUNT_AND_ALIAS_PRESENT, DOMAIN_ALIAS_EXISTS, DOMAIN_EXISTS, \ - DOMAIN_INVALID, DOMAIN_TOO_LONG, NO_SUCH_DOMAIN -from VirtualMailManager.errors import DomainError as DomErr + DOMAIN_INVALID, DOMAIN_TOO_LONG, NO_SUCH_DOMAIN, VMM_ERROR +from VirtualMailManager.errors import VMMError, DomainError as DomErr from VirtualMailManager.pycompat import all, any from VirtualMailManager.quotalimit import QuotaLimit from VirtualMailManager.transport import Transport @@ -24,6 +24,7 @@ MAILDIR_CHARS = '0123456789abcdefghijklmnopqrstuvwxyz' RE_DOMAIN = re.compile(r"^(?:[a-z0-9-]{1,63}\.){1,}[a-z]{2,6}$") _ = lambda msg: msg +cfg_dget = lambda option: None class Domain(object): @@ -266,6 +267,9 @@ `force` : bool enforce new quota limit for all accounts, default `False` """ + if cfg_dget('misc.dovecot_version') < 0x10102f00: + raise VMMError(_(u'PostgreSQL-based dictionary quota requires ' + u'Dovecot >= v1.1.2'), VMM_ERROR) self._chk_state() assert isinstance(quotalimit, QuotaLimit) if not force and quotalimit == self._qlimit: @@ -459,4 +463,4 @@ domains[gid] = [None, domain] return gids, domains -del _ +del _, cfg_dget