* 'VirtualMailManager/Domain.py'
authorPascal Volk <neverseen@users.sourceforge.net>
Tue, 19 Aug 2008 04:30:34 +0000
changeset 50 927b0705d31a
parent 49 9bd033177377
child 51 f5ca21303871
* 'VirtualMailManager/Domain.py' * 'VirtualMailManager/VirtualMailManager.py' - VirtualMailManager.chkDomainname() is now executed by class Domain. * 'po/de.po' * 'po/vmm.pot' - updated
VirtualMailManager/Domain.py
VirtualMailManager/VirtualMailManager.py
po/de.po
po/vmm.pot
--- a/VirtualMailManager/Domain.py	Tue Aug 19 02:56:01 2008 +0000
+++ b/VirtualMailManager/Domain.py	Tue Aug 19 04:30:34 2008 +0000
@@ -15,8 +15,9 @@
 
 from random import choice
 
-from Exceptions import VMMDomainException
+from Exceptions import VMMDomainException as VMMDE
 import constants.ERROR as ERR
+import VirtualMailManager as VMM
 from Transport import Transport
 
 MAILDIR_CHARS = '0123456789abcdefghijklmnopqrstuvwxyz'
@@ -32,7 +33,7 @@
         transport -- default vmm.cfg/misc/transport  (str)
         """
         self._dbh = dbh
-        self._name = domainname
+        self._name = VMM.VirtualMailManager.chkDomainname(domainname)
         self._basedir = basedir
         if transport is not None:
             self._transport = Transport(self._dbh, transport=transport)
@@ -62,6 +63,7 @@
             return False
 
     def _aliasExists(self, aliasname):
+        aliasname = VMM.VirtualMailManager.chkDomainname(aliasname)
         dbc = self._dbh.cursor()
         dbc.execute("SELECT gid, is_primary FROM domain_name\
  WHERE domainname = %s", aliasname)
@@ -70,10 +72,10 @@
         if result is None:
             return False
         elif result[1]:
-            raise VMMDomainException(_('Domain already exists.'),
+            raise VMMDE(_(u'The domain »%s« already exists.') % self._name,
                 ERR.DOMAIN_EXISTS)
         else:
-            raise VMMDomainException(_('Domain alias already exists.'),
+            raise VMMDE(_(u'The domain alias »%s« already exists.') % aliasname,
                 ERR.DOMAIN_ALIAS_EXISTS)
 
     def _setID(self):
@@ -127,13 +129,13 @@
         else:
             hasAlias = False
         if hasUser and hasAlias:
-            raise VMMDomainException(_('There are accounts and aliases.'),
+            raise VMMDE(_(u'There are accounts and aliases.'),
                 ERR.ACCOUNT_AND_ALIAS_PRESENT)
         elif hasUser:
-            raise VMMDomainException(_('There are accounts.'),
+            raise VMMDE(_(u'There are accounts.'),
                 ERR.ACCOUNT_PRESENT)
         elif hasAlias:
-            raise VMMDomainException(_('There are aliases.'),
+            raise VMMDE(_(u'There are aliases.'),
                 ERR.ALIAS_PRESENT)
 
     def save(self):
@@ -148,7 +150,7 @@
             self._dbh.commit()
             dbc.close()
         else:
-            raise VMMDomainException(_('Domain already exists.'),
+            raise VMMDE(_(u'The domain »%s« already exists.') % self._name,
                 ERR.DOMAIN_EXISTS)
 
     def delete(self, delUser=False, delAlias=False):
@@ -166,10 +168,10 @@
             self._dbh.commit()
             dbc.close()
         else:
-            raise VMMDomainException(_("Domain doesn't exist yet."),
+            raise VMMDE(_(u"The domain »%s« doesn't exist yet.") % self._name,
                 ERR.NO_SUCH_DOMAIN)
 
-    def updateTransport(self, transport, force = False):
+    def updateTransport(self, transport, force=False):
         """Sets a new transport for the domain.
 
         Keyword arguments:
@@ -190,7 +192,7 @@
                     self._dbh.commit()
             dbc.close()
         else:
-            raise VMMDomainException(_("Domain doesn't exist yet."),
+            raise VMMDE(_(u"The domain »%s« doesn't exist yet.") % self._name,
                 ERR.NO_SUCH_DOMAIN)
 
     def saveAlias(self, aliasname):
@@ -199,6 +201,7 @@
         Keyword arguments:
         aliasname -- the alias name of the domain (str)
         """
+        aliasname = VMM.VirtualMailManager.chkDomainname(aliasname)
         if self._id > 0 and not self._aliasExists(aliasname):
             dbc = self._dbh.cursor()
             dbc.execute('INSERT INTO domain_name VALUES (%s, %s, %s)',
@@ -207,7 +210,7 @@
                 self._dbh.commit()
             dbc.close()
         else:
-            raise VMMDomainException(_("Domain doesn't exist yet."),
+            raise VMMDE(_(u"The domain »%s« doesn't exist yet.") % self._name,
                 ERR.NO_SUCH_DOMAIN)
 
     def getID(self):
@@ -237,8 +240,8 @@
         info = dbc.fetchone()
         dbc.close()
         if info is None:
-            raise VMMDomainException(_("Domain doesn't exist yet."),
-                ERR.NO_SUCH_DOMAIN)
+            raise VMMDE(_(u"The domain »%s« doesn't exist yet.") % self._name,
+                    ERR.NO_SUCH_DOMAIN)
         else:
             keys = ['gid', 'domainname', 'transport', 'domaindir',
                     'aliasdomains', 'accounts', 'aliases']
@@ -284,6 +287,8 @@
         return aliasdomains
 
 def search(dbh, pattern=None, like=False):
+    if pattern is not None and like is False: 
+        pattern = VMM.VirtualMailManager.chkDomainname(pattern)
     sql = 'SELECT gid, domainname, is_primary FROM domain_name'
     if pattern is None:
         pass
@@ -315,6 +320,7 @@
     return order, domdict
 
 def deleteAlias(dbh, aliasname):
+    aliasname = VMM.VirtualMailManager.chkDomainname(aliasname)
     dbc = dbh.cursor()
     dbc.execute('DELETE FROM domain_name WHERE domainname = %s', aliasname)
     if dbc.rowcount > 0:
--- a/VirtualMailManager/VirtualMailManager.py	Tue Aug 19 02:56:01 2008 +0000
+++ b/VirtualMailManager/VirtualMailManager.py	Tue Aug 19 04:30:34 2008 +0000
@@ -145,7 +145,6 @@
         for label in domainname.split('.'):
             if len(label) == 0:
                 continue
-            #tmp.append(ToASCII(unicode(label, ENCODING_IN)))
             tmp.append(ToASCII(label))
         return '.'.join(tmp)
     idn2ascii = staticmethod(idn2ascii)
@@ -229,7 +228,6 @@
         return Alias(self.__dbh, address, destination)
 
     def __getDomain(self, domainname, transport=None):
-        domainname = VirtualMailManager.chkDomainname(domainname)
         if transport is None:
             transport = self.__Cfg.get('misc', 'transport')
         self.__dbConnect()
@@ -427,7 +425,7 @@
         except ValueError, e:
             raise VMMConfigException(_(u"""Configurtion error: "%s"
 (in section "connfig", option "done") see also: vmm.cfg(5)\n""") % str(e),
-    ERR.CONF_ERROR)
+                  ERR.CONF_ERROR)
 
     def configure(self, section=None):
         """Starts interactive configuration.
@@ -506,8 +504,6 @@
         domainname -- name of the target domain (str)
         """
         dom = self.__getDomain(domainname)
-        # XXX chk by DomainAlias!!!
-        aliasname = VirtualMailManager.chkDomainname(aliasname)
         dom.saveAlias(aliasname)
 
     def domain_alias_delete(self, aliasname):
@@ -517,8 +513,6 @@
         aliasname -- the alias name of the domain (str)
         """
         from Domain import deleteAlias
-        aliasname = VirtualMailManager.chkDomainname(aliasname)
-        # XXX chk by DomainAlias!!!
         self.__dbConnect()
         deleteAlias(self.__dbh, aliasname)
 
@@ -537,11 +531,8 @@
                 re.compile(RE_DOMAIN_SRCH)
                 if not re.match(RE_DOMAIN_SRCH, domain):
                     raise VMMException(
-                    _(u"The pattern '%s' contains invalid characters.") %
+                    _(u"The pattern »%s« contains invalid characters.") %
                     pattern, ERR.DOMAIN_INVALID)
-            else:
-                pattern = VirtualMailManager.chkDomainname(pattern)
-                # XXX chk by domain if not like
         self.__dbConnect()
         return search(self.__dbh, pattern=pattern, like=like)
 
--- a/po/de.po	Tue Aug 19 02:56:01 2008 +0000
+++ b/po/de.po	Tue Aug 19 04:30:34 2008 +0000
@@ -5,8 +5,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: vmm 0.5\n"
-"POT-Creation-Date: 2008-08-19 03:57+CEST\n"
-"PO-Revision-Date: 2008-08-19 04:03+0200\n"
+"POT-Creation-Date: 2008-08-19 06:18+CEST\n"
+"PO-Revision-Date: 2008-08-19 06:20+0200\n"
 "Last-Translator: Pascal Volk <p.volk@veb-it.de>\n"
 "Language-Team: German\n"
 "MIME-Version: 1.0\n"
@@ -100,30 +100,30 @@
 msgid "Enter new value for option %s [%s]: "
 msgstr "Neuer Wert für Option %s [%s]: "
 
-#: VirtualMailManager/Domain.py:73 VirtualMailManager/Domain.py:151
-msgid "Domain already exists."
-msgstr "Die Domain existiert bereits."
+#: VirtualMailManager/Domain.py:75 VirtualMailManager/Domain.py:153
+msgid "The domain »%s« already exists."
+msgstr "Die Domain »%s« existiert bereits."
 
-#: VirtualMailManager/Domain.py:76
-msgid "Domain alias already exists."
-msgstr "Der Domain-Alias existiert bereits."
+#: VirtualMailManager/Domain.py:78
+msgid "The domain alias »%s« already exists."
+msgstr "Der Domain-Alias »%s« existiert bereits."
 
-#: VirtualMailManager/Domain.py:130
+#: VirtualMailManager/Domain.py:132
 msgid "There are accounts and aliases."
 msgstr "Es sind noch Accounts und Aliase vorhanden."
 
-#: VirtualMailManager/Domain.py:133
+#: VirtualMailManager/Domain.py:135
 msgid "There are accounts."
 msgstr "Es sind noch Accounts vorhanden."
 
-#: VirtualMailManager/Domain.py:136
+#: VirtualMailManager/Domain.py:138
 msgid "There are aliases."
 msgstr "Es sind noch Aliase vorhanden."
 
-#: VirtualMailManager/Domain.py:169 VirtualMailManager/Domain.py:193
-#: VirtualMailManager/Domain.py:210 VirtualMailManager/Domain.py:240
-msgid "Domain doesn't exist yet."
-msgstr "Die Domain existiert noch nicht."
+#: VirtualMailManager/Domain.py:171 VirtualMailManager/Domain.py:195
+#: VirtualMailManager/Domain.py:213 VirtualMailManager/Domain.py:243
+msgid "The domain »%s« doesn't exist yet."
+msgstr "Die Domain »%s« existiert noch nicht."
 
 #: VirtualMailManager/MailLocation.py:34
 msgid "Either mid or maillocation must be specified."
@@ -205,63 +205,63 @@
 msgid "The local part »%s« contains invalid characters: %s"
 msgstr "Der local-part »%s« enthält ungültige Zeichen: %s"
 
-#: VirtualMailManager/VirtualMailManager.py:177
+#: VirtualMailManager/VirtualMailManager.py:176
 msgid "The domain name is too long."
 msgstr "Der Domain-Name ist zu lang."
 
-#: VirtualMailManager/VirtualMailManager.py:181
+#: VirtualMailManager/VirtualMailManager.py:180
 msgid "The domain name is invalid."
 msgstr "Der Domain-Name ist ungültig."
 
-#: VirtualMailManager/VirtualMailManager.py:190
+#: VirtualMailManager/VirtualMailManager.py:189
 msgid "Missing '@' sign in e-mail address »%s«."
 msgstr "In der E-Mail-Adresse »%s« fehlt das '@'-Zeichen."
 
-#: VirtualMailManager/VirtualMailManager.py:193
+#: VirtualMailManager/VirtualMailManager.py:192
 msgid "»%s« looks not like an e-mail address."
 msgstr "»%s« sieht nicht wie eine E-Mail-Adresse aus."
 
-#: VirtualMailManager/VirtualMailManager.py:211
+#: VirtualMailManager/VirtualMailManager.py:210
 msgid "Enter new password: "
 msgstr "Neues Passwort eingeben: "
 
-#: VirtualMailManager/VirtualMailManager.py:214
+#: VirtualMailManager/VirtualMailManager.py:213
 msgid "Sorry, empty passwords are not permitted"
 msgstr "Entschuldigung, leere Passwörter sind nicht zulässig"
 
-#: VirtualMailManager/VirtualMailManager.py:215
+#: VirtualMailManager/VirtualMailManager.py:214
 msgid "Retype new password: "
 msgstr "Neues Passwort wiederholen: "
 
-#: VirtualMailManager/VirtualMailManager.py:218
+#: VirtualMailManager/VirtualMailManager.py:217
 msgid "Sorry, passwords do not match"
 msgstr "Entschuldigung, die Passwörter stimmen nicht überein"
 
-#: VirtualMailManager/VirtualMailManager.py:254
+#: VirtualMailManager/VirtualMailManager.py:252
 msgid "No such directory: %s"
 msgstr "Verzeichnis nicht gefunden: %s"
 
-#: VirtualMailManager/VirtualMailManager.py:312
+#: VirtualMailManager/VirtualMailManager.py:310
 msgid "Found \"..\" in maildir path."
 msgstr "\"..\" im Pfad zum Maildir entdeckt."
 
-#: VirtualMailManager/VirtualMailManager.py:320
+#: VirtualMailManager/VirtualMailManager.py:318
 msgid "Owner/group mismatch in maildir detected."
 msgstr "Maildir gehört dem/der falschen Benutzer/Gruppe."
 
-#: VirtualMailManager/VirtualMailManager.py:324
+#: VirtualMailManager/VirtualMailManager.py:322
 msgid "No such directory: %s/%s"
 msgstr "Verzeichnis nicht gefunden: %s/%s"
 
-#: VirtualMailManager/VirtualMailManager.py:335
+#: VirtualMailManager/VirtualMailManager.py:333
 msgid "FATAL: \"..\" in domain directory path detected."
 msgstr "FATAL: \"..\" im Pfad zum Domain-Verzeichnis entdeckt."
 
-#: VirtualMailManager/VirtualMailManager.py:341
+#: VirtualMailManager/VirtualMailManager.py:339
 msgid "FATAL: group mismatch in domain directory detected"
 msgstr "FATAL: Domain-Verzeichnis gehört der falschen Gruppe"
 
-#: VirtualMailManager/VirtualMailManager.py:428
+#: VirtualMailManager/VirtualMailManager.py:426
 msgid ""
 "Configurtion error: \"%s\"\n"
 "(in section \"connfig\", option \"done\") see also: vmm.cfg(5)\n"
@@ -269,24 +269,24 @@
 "Konfigurations Fehler: \"%s\"\n"
 "(im Abschnitt \"connfig\", Option \"done\") Siehe auch: vmm.cfg(5)\n"
 
-#: VirtualMailManager/VirtualMailManager.py:448
+#: VirtualMailManager/VirtualMailManager.py:446
 msgid "Invalid section: '%s'"
 msgstr "Ungültiger Abschnitt: '%s'"
 
-#: VirtualMailManager/VirtualMailManager.py:458
+#: VirtualMailManager/VirtualMailManager.py:456
 msgid "Invalid argument: '%s'"
 msgstr "Ungültiges Argument: '%s'"
 
-#: VirtualMailManager/VirtualMailManager.py:468
-#: VirtualMailManager/VirtualMailManager.py:498
+#: VirtualMailManager/VirtualMailManager.py:466
+#: VirtualMailManager/VirtualMailManager.py:496
 msgid "Invalid argument: »%s«"
 msgstr "Ungültiges Argument: »%s«"
 
-#: VirtualMailManager/VirtualMailManager.py:540
-msgid "The pattern '%s' contains invalid characters."
-msgstr "Das Muster '%s' enthält ungültige Zeichen."
+#: VirtualMailManager/VirtualMailManager.py:534
+msgid "The pattern »%s« contains invalid characters."
+msgstr "Das Muster »%s« enthält ungültige Zeichen."
 
-#: VirtualMailManager/VirtualMailManager.py:575
+#: VirtualMailManager/VirtualMailManager.py:566
 msgid ""
 "The account has been successfully deleted from the database.\n"
 "    But an error occurred while deleting the following directory:\n"
@@ -298,11 +298,11 @@
 "    »%s«\n"
 "    Grund: %s"
 
-#: VirtualMailManager/VirtualMailManager.py:607
+#: VirtualMailManager/VirtualMailManager.py:598
 msgid "Account doesn't exists"
 msgstr "Der Account existiert nicht"
 
-#: vmm:41
+#: vmm:40
 msgid ""
 "Usage: %s SUBCOMMAND OBJECT ARGS*\n"
 "  short long\n"
@@ -312,126 +312,126 @@
 "  kurz  lang\n"
 "  Unterbefehl              Objekt            args (* = optional)\n"
 
-#: vmm:76 vmm:87 vmm:413
+#: vmm:75 vmm:86 vmm:412
 msgid "Error"
 msgstr "Fehler"
 
-#: vmm:109
+#: vmm:108
 msgid "information"
 msgstr "Informationen"
 
-#: vmm:119
+#: vmm:118
 msgid "Available"
 msgstr "Verfügbare"
 
-#: vmm:122 vmm:201
+#: vmm:121 vmm:200
 msgid "alias domains"
 msgstr "Alias-Domains"
 
-#: vmm:132 vmm:143 vmm:161
+#: vmm:131 vmm:142 vmm:160
 msgid "\tNone"
 msgstr "\tKeine"
 
-#: vmm:136
+#: vmm:135
 msgid "Alias information"
 msgstr "Alias Informationen"
 
-#: vmm:138
+#: vmm:137
 msgid "\tMail for %s goes to:"
 msgstr "\tE-Mails für %s gehen an:"
 
-#: vmm:156
+#: vmm:155
 msgid "Available domains"
 msgstr "Verfügbare Domains"
 
-#: vmm:158
+#: vmm:157
 msgid "Matching domains"
 msgstr "Übereinstimmende Domains"
 
-#: vmm:179 vmm:187 vmm:195
+#: vmm:178 vmm:186 vmm:194
 msgid "Missing domain name."
 msgstr "Kein Domain-Name angegeben."
 
-#: vmm:197 vmm:200
+#: vmm:196 vmm:199
 msgid "Domain"
 msgstr "Domain"
 
-#: vmm:202
+#: vmm:201
 msgid "accounts"
 msgstr "Accounts"
 
-#: vmm:203
+#: vmm:202
 msgid "aliases"
 msgstr "Aliase"
 
-#: vmm:207
+#: vmm:206
 msgid "Missing domain name and new transport."
 msgstr "Domain-Name und neuer Transport fehlen."
 
-#: vmm:209
+#: vmm:208
 msgid "Missing new transport."
 msgstr "Neuer Transport fehlt."
 
-#: vmm:218
+#: vmm:217
 msgid "Missing alias domain name and target domain name."
 msgstr "Domain-Namen für Alias- und Ziel-Domain fehlen."
 
-#: vmm:220
+#: vmm:219
 msgid "Missing target domain name."
 msgstr "Keine Ziel-Domain angegeben."
 
-#: vmm:227 vmm:233
+#: vmm:226 vmm:232
 msgid "Missing alias domain name."
 msgstr "Keine Alias-Domain angegeben."
 
-#: vmm:239 vmm:248 vmm:254 vmm:278 vmm:286 vmm:294
+#: vmm:238 vmm:247 vmm:253 vmm:277 vmm:285 vmm:293
 msgid "Missing e-mail address."
 msgstr "E-Mail-Adresse fehlt."
 
-#: vmm:262
+#: vmm:261
 msgid "Missing e-mail address and users name."
 msgstr "E-Mail-Adresse und der Name des Benutzers fehlen."
 
-#: vmm:264
+#: vmm:263
 msgid "Missing users name."
 msgstr "Name des Benutzers fehlt."
 
-#: vmm:270
+#: vmm:269
 msgid "Missing e-mail address and transport."
 msgstr "E-Mail-Adresse und Transport fehlen."
 
-#: vmm:272
+#: vmm:271
 msgid "Missing transport."
 msgstr "Transport fehlt."
 
-#: vmm:303
+#: vmm:302
 msgid "Missing alias address and destination."
 msgstr "Alias- und Ziel-Adresse fehlen."
 
-#: vmm:309 vmm:315
+#: vmm:308 vmm:314
 msgid "Missing alias address"
 msgstr "Alias-Adresse fehlt."
 
-#: vmm:323
+#: vmm:322
 msgid "Missing userid"
 msgstr "Keine UID angegeben."
 
-#: vmm:336
+#: vmm:335
 msgid "Warnings:"
 msgstr "Warnungen:"
 
-#: vmm:341
+#: vmm:340
 msgid "version"
 msgstr "Version"
 
-#: vmm:342
+#: vmm:341
 msgid "from"
 msgstr "vom"
 
-#: vmm:408
+#: vmm:407
 msgid "Unknown subcommand"
 msgstr "Unbekannter Unterbefehl"
 
-#: vmm:411
+#: vmm:410
 msgid "Ouch"
 msgstr "Autsch"
--- a/po/vmm.pot	Tue Aug 19 02:56:01 2008 +0000
+++ b/po/vmm.pot	Tue Aug 19 04:30:34 2008 +0000
@@ -5,7 +5,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: vmm 0.5\n"
-"POT-Creation-Date: 2008-08-19 04:00+CEST\n"
+"POT-Creation-Date: 2008-08-19 06:18+CEST\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -102,29 +102,29 @@
 msgid "Enter new value for option %s [%s]: "
 msgstr ""
 
-#: VirtualMailManager/Domain.py:73 VirtualMailManager/Domain.py:151
-msgid "Domain already exists."
+#: VirtualMailManager/Domain.py:75 VirtualMailManager/Domain.py:153
+msgid "The domain \302\273%s\302\253 already exists."
 msgstr ""
 
-#: VirtualMailManager/Domain.py:76
-msgid "Domain alias already exists."
+#: VirtualMailManager/Domain.py:78
+msgid "The domain alias \302\273%s\302\253 already exists."
 msgstr ""
 
-#: VirtualMailManager/Domain.py:130
+#: VirtualMailManager/Domain.py:132
 msgid "There are accounts and aliases."
 msgstr ""
 
-#: VirtualMailManager/Domain.py:133
+#: VirtualMailManager/Domain.py:135
 msgid "There are accounts."
 msgstr ""
 
-#: VirtualMailManager/Domain.py:136
+#: VirtualMailManager/Domain.py:138
 msgid "There are aliases."
 msgstr ""
 
-#: VirtualMailManager/Domain.py:169 VirtualMailManager/Domain.py:193
-#: VirtualMailManager/Domain.py:210 VirtualMailManager/Domain.py:240
-msgid "Domain doesn't exist yet."
+#: VirtualMailManager/Domain.py:171 VirtualMailManager/Domain.py:195
+#: VirtualMailManager/Domain.py:213 VirtualMailManager/Domain.py:243
+msgid "The domain \302\273%s\302\253 doesn't exist yet."
 msgstr ""
 
 #: VirtualMailManager/MailLocation.py:34
@@ -197,86 +197,86 @@
 msgid "The local part \302\273%s\302\253 contains invalid characters: %s"
 msgstr ""
 
-#: VirtualMailManager/VirtualMailManager.py:177
+#: VirtualMailManager/VirtualMailManager.py:176
 msgid "The domain name is too long."
 msgstr ""
 
-#: VirtualMailManager/VirtualMailManager.py:181
+#: VirtualMailManager/VirtualMailManager.py:180
 msgid "The domain name is invalid."
 msgstr ""
 
-#: VirtualMailManager/VirtualMailManager.py:190
+#: VirtualMailManager/VirtualMailManager.py:189
 msgid "Missing '@' sign in e-mail address \302\273%s\302\253."
 msgstr ""
 
-#: VirtualMailManager/VirtualMailManager.py:193
+#: VirtualMailManager/VirtualMailManager.py:192
 msgid "\302\273%s\302\253 looks not like an e-mail address."
 msgstr ""
 
-#: VirtualMailManager/VirtualMailManager.py:211
+#: VirtualMailManager/VirtualMailManager.py:210
 msgid "Enter new password: "
 msgstr ""
 
+#: VirtualMailManager/VirtualMailManager.py:213
+msgid "Sorry, empty passwords are not permitted"
+msgstr ""
+
 #: VirtualMailManager/VirtualMailManager.py:214
-msgid "Sorry, empty passwords are not permitted"
-msgstr ""
-
-#: VirtualMailManager/VirtualMailManager.py:215
 msgid "Retype new password: "
 msgstr ""
 
-#: VirtualMailManager/VirtualMailManager.py:218
+#: VirtualMailManager/VirtualMailManager.py:217
 msgid "Sorry, passwords do not match"
 msgstr ""
 
-#: VirtualMailManager/VirtualMailManager.py:254
+#: VirtualMailManager/VirtualMailManager.py:252
 msgid "No such directory: %s"
 msgstr ""
 
-#: VirtualMailManager/VirtualMailManager.py:312
+#: VirtualMailManager/VirtualMailManager.py:310
 msgid "Found \"..\" in maildir path."
 msgstr ""
 
-#: VirtualMailManager/VirtualMailManager.py:320
+#: VirtualMailManager/VirtualMailManager.py:318
 msgid "Owner/group mismatch in maildir detected."
 msgstr ""
 
-#: VirtualMailManager/VirtualMailManager.py:324
+#: VirtualMailManager/VirtualMailManager.py:322
 msgid "No such directory: %s/%s"
 msgstr ""
 
-#: VirtualMailManager/VirtualMailManager.py:335
+#: VirtualMailManager/VirtualMailManager.py:333
 msgid "FATAL: \"..\" in domain directory path detected."
 msgstr ""
 
-#: VirtualMailManager/VirtualMailManager.py:341
+#: VirtualMailManager/VirtualMailManager.py:339
 msgid "FATAL: group mismatch in domain directory detected"
 msgstr ""
 
-#: VirtualMailManager/VirtualMailManager.py:428
+#: VirtualMailManager/VirtualMailManager.py:426
 msgid ""
 "Configurtion error: \"%s\"\n"
 "(in section \"connfig\", option \"done\") see also: vmm.cfg(5)\n"
 msgstr ""
 
-#: VirtualMailManager/VirtualMailManager.py:448
+#: VirtualMailManager/VirtualMailManager.py:446
 msgid "Invalid section: '%s'"
 msgstr ""
 
-#: VirtualMailManager/VirtualMailManager.py:458
+#: VirtualMailManager/VirtualMailManager.py:456
 msgid "Invalid argument: '%s'"
 msgstr ""
 
-#: VirtualMailManager/VirtualMailManager.py:468
-#: VirtualMailManager/VirtualMailManager.py:498
+#: VirtualMailManager/VirtualMailManager.py:466
+#: VirtualMailManager/VirtualMailManager.py:496
 msgid "Invalid argument: \302\273%s\302\253"
 msgstr ""
 
-#: VirtualMailManager/VirtualMailManager.py:540
-msgid "The pattern '%s' contains invalid characters."
+#: VirtualMailManager/VirtualMailManager.py:534
+msgid "The pattern \302\273%s\302\253 contains invalid characters."
 msgstr ""
 
-#: VirtualMailManager/VirtualMailManager.py:575
+#: VirtualMailManager/VirtualMailManager.py:566
 msgid ""
 "The account has been successfully deleted from the database.\n"
 "    But an error occurred while deleting the following directory:\n"
@@ -284,138 +284,138 @@
 "    Reason: %s"
 msgstr ""
 
-#: VirtualMailManager/VirtualMailManager.py:607
+#: VirtualMailManager/VirtualMailManager.py:598
 msgid "Account doesn't exists"
 msgstr ""
 
-#: vmm:41
+#: vmm:40
 msgid ""
 "Usage: %s SUBCOMMAND OBJECT ARGS*\n"
 "  short long\n"
 "  subcommand               object            args (* = optional)\n"
 msgstr ""
 
-#: vmm:76 vmm:87 vmm:413
+#: vmm:75 vmm:86 vmm:412
 msgid "Error"
 msgstr ""
 
-#: vmm:109
+#: vmm:108
 msgid "information"
 msgstr ""
 
-#: vmm:119
+#: vmm:118
 msgid "Available"
 msgstr ""
 
-#: vmm:122 vmm:201
+#: vmm:121 vmm:200
 msgid "alias domains"
 msgstr ""
 
-#: vmm:132 vmm:143 vmm:161
+#: vmm:131 vmm:142 vmm:160
 msgid "\tNone"
 msgstr ""
 
-#: vmm:136
+#: vmm:135
 msgid "Alias information"
 msgstr ""
 
-#: vmm:138
+#: vmm:137
 msgid "\tMail for %s goes to:"
 msgstr ""
 
-#: vmm:156
+#: vmm:155
 msgid "Available domains"
 msgstr ""
 
-#: vmm:158
+#: vmm:157
 msgid "Matching domains"
 msgstr ""
 
-#: vmm:179 vmm:187 vmm:195
+#: vmm:178 vmm:186 vmm:194
 msgid "Missing domain name."
 msgstr ""
 
-#: vmm:197 vmm:200
+#: vmm:196 vmm:199
 msgid "Domain"
 msgstr ""
 
-#: vmm:202
+#: vmm:201
 msgid "accounts"
 msgstr ""
 
-#: vmm:203
+#: vmm:202
 msgid "aliases"
 msgstr ""
 
-#: vmm:207
+#: vmm:206
 msgid "Missing domain name and new transport."
 msgstr ""
 
-#: vmm:209
+#: vmm:208
 msgid "Missing new transport."
 msgstr ""
 
-#: vmm:218
+#: vmm:217
 msgid "Missing alias domain name and target domain name."
 msgstr ""
 
-#: vmm:220
+#: vmm:219
 msgid "Missing target domain name."
 msgstr ""
 
-#: vmm:227 vmm:233
+#: vmm:226 vmm:232
 msgid "Missing alias domain name."
 msgstr ""
 
-#: vmm:239 vmm:248 vmm:254 vmm:278 vmm:286 vmm:294
+#: vmm:238 vmm:247 vmm:253 vmm:277 vmm:285 vmm:293
 msgid "Missing e-mail address."
 msgstr ""
 
-#: vmm:262
+#: vmm:261
 msgid "Missing e-mail address and users name."
 msgstr ""
 
-#: vmm:264
+#: vmm:263
 msgid "Missing users name."
 msgstr ""
 
-#: vmm:270
+#: vmm:269
 msgid "Missing e-mail address and transport."
 msgstr ""
 
-#: vmm:272
+#: vmm:271
 msgid "Missing transport."
 msgstr ""
 
-#: vmm:303
+#: vmm:302
 msgid "Missing alias address and destination."
 msgstr ""
 
-#: vmm:309 vmm:315
+#: vmm:308 vmm:314
 msgid "Missing alias address"
 msgstr ""
 
-#: vmm:323
+#: vmm:322
 msgid "Missing userid"
 msgstr ""
 
-#: vmm:336
+#: vmm:335
 msgid "Warnings:"
 msgstr ""
 
-#: vmm:341
+#: vmm:340
 msgid "version"
 msgstr ""
 
-#: vmm:342
+#: vmm:341
 msgid "from"
 msgstr ""
 
-#: vmm:408
+#: vmm:407
 msgid "Unknown subcommand"
 msgstr ""
 
-#: vmm:411
+#: vmm:410
 msgid "Ouch"
 msgstr ""