* 'VirtualMailManager/Account.py'
authorPascal Volk <neverseen@users.sourceforge.net>
Sun, 05 Oct 2008 03:33:38 +0000
changeset 90 1734eb5101c6
parent 89 752d3b57ebb6
child 91 0e5b2835414d
* 'VirtualMailManager/Account.py' - Implemented Account.getAliases() in order to display optional all assigned alias addresses. * 'VirtualMailManager/VirtualMailManager.py' - Some small cleanups in VirtualMailManager.domainInfo() - Adjusted VirtualMailManager.userInfo() * 'vmm' - Included account/alias stuff * 'man/de/man1/vmm.1' * 'man/man1/vmm.1' * 'po/de.po' * 'po/vmm.pot' - updated
VirtualMailManager/Account.py
VirtualMailManager/VirtualMailManager.py
man/de/man1/vmm.1
man/man1/vmm.1
po/de.po
po/vmm.pot
vmm
--- a/VirtualMailManager/Account.py	Thu Sep 18 18:40:54 2008 +0000
+++ b/VirtualMailManager/Account.py	Sun Oct 05 03:33:38 2008 +0000
@@ -197,6 +197,19 @@
                     tid=info['transport']).getTransport()
             return info
 
+    def getAliases(self):
+        dbc = self._dbh.cursor()
+        dbc.execute("SELECT address ||'@'|| domainname FROM alias, domain_name\
+ WHERE destination = %s AND domain_name.gid = alias.gid\
+ AND domain_name.is_primary", str(self._addr))
+        addresses = dbc.fetchall()
+        dbc.close()
+        aliases = []
+        if len(addresses) > 0:
+            for alias in addresses:
+                aliases.append(alias[0])
+        return aliases
+
     def delete(self, delalias):
         if self._uid < 1:
             raise AccE(_(u"The account »%s« doesn't exists.") % self._addr,
--- a/VirtualMailManager/VirtualMailManager.py	Thu Sep 18 18:40:54 2008 +0000
+++ b/VirtualMailManager/VirtualMailManager.py	Sun Oct 05 03:33:38 2008 +0000
@@ -503,8 +503,8 @@
     def domainInfo(self, domainname, details=None):
         if details not in [None, 'accounts', 'aliasdomains', 'aliases', 'full',
                 'relocated', 'detailed']:
-            raise VMMDomainException(_(u'Invalid argument: »%s«') % details,
-                ERR.INVALID_OPTION)
+            raise VMMException(_(u'Invalid argument: »%s«') % details,
+                    ERR.INVALID_AGUMENT)
         if details == 'detailed':
             details = 'full'
             warning = _(u"""\
@@ -516,8 +516,6 @@
         if dominfo['domainname'].startswith('xn--'):
             dominfo['domainname'] += ' (%s)'\
                 % VirtualMailManager.ace2idna(dominfo['domainname'])
-        if dominfo['aliases'] is None:
-            dominfo['aliases'] = 0
         if details is None:
             return dominfo
         elif details == 'accounts':
@@ -642,11 +640,19 @@
         alias = self.__getAlias(aliasaddress, targetaddress)
         alias.delete()
 
-    def userInfo(self, emailaddress, diskusage=False):
+    def userInfo(self, emailaddress, details=None):
+        if details not in [None, 'du', 'aliases', 'full']:
+            raise VMMException(_(u'Invalid argument: »%s«') % details,
+                    ERR.INVALID_AGUMENT)
         acc = self.__getAccount(emailaddress)
         info = acc.getInfo()
-        if self.__Cfg.getboolean('maildir', 'diskusage') or diskusage:
+        if self.__Cfg.getboolean('maildir', 'diskusage')\
+        or details in ['du', 'full']:
             info['disk usage'] = self.__getDiskUsage('%(maildir)s' % info)
+            if details in [None, 'du']:
+                return info
+        if details in ['aliases', 'full']:
+            return (info, acc.getAliases())
         return info
 
     def userByID(self, uid):
--- a/man/de/man1/vmm.1	Thu Sep 18 18:40:54 2008 +0000
+++ b/man/de/man1/vmm.1	Sun Oct 05 03:33:38 2008 +0000
@@ -1,5 +1,5 @@
 .\" $Id$
-.TH "VMM" "1" "10. Sep 2008" "Pascal Volk"
+.TH "VMM" "1" "5. Okt 2008" "Pascal Volk"
 .SH NAME
 vmm \- Programm für die Kommandozeile, um E-Mail-Domains, -Konten und -Aliase zu
 verwalten.
@@ -266,12 +266,28 @@
         Neues Passwort wiederholen:
 .fi
 .TP
-\fBuserinfo\fP (\fBui\fP) \fIAdresse\fP [ \fIdu\fP ]
+\fBuserinfo\fP (\fBui\fP) \fIAdresse\fP [ \fIdetails\fP ]
 Dieser Unterbefehl zeigt einige Informationen über das Konto mit der angegebenen
 \fIAdresse\fP an.
 .br
-Wurde das optionale Argument \fIdu\fP angegeben, wird zusätzlich die
-Festplattenbelegung des Kontos ermittelt und ausgegeben.
+Wurde das optionale Argument \fIdetails\fP angegeben, werden weitere
+Informationen ausgegeben.
+.br
+Mögliche Werte für \fIdetails\fP sind:
+.RS
+.PD 0
+.TP 
+.B aliases
+um alle Alias-Adressen, mit dem Ziel \fIAdresse\fP, aufzulisten
+.TP
+.B du
+um zusätzlich die Festplattenbelegung des Kontos anzuzeigen
+.TP
+.B full
+um alle oben genannten Informationen anzuzeigen
+.PD
+.RE
+.LP
 .TP
 \fBusername\fP (\fBun\fP) \fIAdresse\fP \fI'Bürgerlicher Name'\fP
 Der Bürgerliche Name des Konto-Inhabers mit der angegebenen \fIAdresse\fP kann
--- a/man/man1/vmm.1	Thu Sep 18 18:40:54 2008 +0000
+++ b/man/man1/vmm.1	Sun Oct 05 03:33:38 2008 +0000
@@ -1,5 +1,5 @@
 .\" $Id$
-.TH "VMM" "1" "10. Sep 2008" "Pascal Volk"
+.TH "VMM" "1" "5 Oct 2008" "Pascal Volk"
 .SH NAME
 vmm \- command line tool to manage email domains/accounts/aliases
 .SH SYNOPSIS
@@ -250,12 +250,28 @@
         Retype new password:
 .fi
 .TP
-\fBuserinfo\fP (\fBui\fP) \fIaddress\fP [ \fIdu\fP ]
+\fBuserinfo\fP (\fBui\fP) \fIaddress\fP [ \fIdetails\fP ]
 This subcommand displays some information about the account specified by
 \fIaddress\fP.
 .br
-If the optional argument \fIdu\fP is given, the disk usage of users maildir will
-be summarized and displayed too.
+If the optional argument \fIdetails\fP is given some more information will be
+displayed.
+.br
+Possible values for \fIdetails\fP are:
+.RS
+.PD 0
+.TP 
+.B aliases
+to list all alias addresses with the destination \fIaddress\fP
+.TP
+.B du
+to display the disk usage of users maildir
+.TP
+.B full
+to list all information mentioned above
+.PD
+.RE
+.LP
 .TP
 \fBusername\fP (\fBun\fP) \fIaddress\fP \fI'Users Name'\fP
 The user's real name can be set/updated with this subcommand.
--- a/po/de.po	Thu Sep 18 18:40:54 2008 +0000
+++ b/po/de.po	Sun Oct 05 03:33:38 2008 +0000
@@ -6,8 +6,8 @@
 msgstr ""
 "Project-Id-Version: vmm 0.5\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-09-18 00:43+0200\n"
-"PO-Revision-Date: 2008-09-18 01:12+0200\n"
+"POT-Creation-Date: 2008-10-05 05:20+0200\n"
+"PO-Revision-Date: 2008-10-05 05:23+0200\n"
 "Last-Translator: Pascal Volk <p.volk@veb-it.de>\n"
 "Language-Team: German\n"
 "MIME-Version: 1.0\n"
@@ -38,7 +38,7 @@
 msgstr "Unbekannter Service »%s«."
 
 #: VirtualMailManager/Account.py:88 VirtualMailManager/Account.py:154
-#: VirtualMailManager/Account.py:181 VirtualMailManager/Account.py:202
+#: VirtualMailManager/Account.py:181 VirtualMailManager/Account.py:215
 #, python-format
 msgid "The account »%s« doesn't exists."
 msgstr "Der Account »%s« existiert nicht."
@@ -56,20 +56,20 @@
 msgid "disabled"
 msgstr "deaktiviert"
 
-#: VirtualMailManager/Account.py:224
+#: VirtualMailManager/Account.py:237
 #, python-format
 msgid "There are %(count)d aliases with the destination address »%(address)s«."
 msgstr "Es gibt %(count)d Alias(e) mit der Zieladresse »%(address)s«."
 
-#: VirtualMailManager/Account.py:232
+#: VirtualMailManager/Account.py:245
 msgid "uid must be an int/long."
 msgstr "Die UID muss eine Ganzzahl sein."
 
-#: VirtualMailManager/Account.py:234
+#: VirtualMailManager/Account.py:247
 msgid "uid must be greater than 0."
 msgstr "Die UID muss größer als 0 sein."
 
-#: VirtualMailManager/Account.py:242
+#: VirtualMailManager/Account.py:255
 #, python-format
 msgid "There is no account with the UID »%d«."
 msgstr "Es existiert kein Account mit der UID »%d«."
@@ -382,7 +382,8 @@
 
 #: VirtualMailManager/VirtualMailManager.py:487
 #: VirtualMailManager/VirtualMailManager.py:506
-#: VirtualMailManager/VirtualMailManager.py:616
+#: VirtualMailManager/VirtualMailManager.py:614
+#: VirtualMailManager/VirtualMailManager.py:645
 #, python-format
 msgid "Invalid argument: »%s«"
 msgstr "Ungültiges Argument: »%s«"
@@ -397,17 +398,17 @@
 "    Version entfernt werden.\n"
 "    Verwenden Sie bitte das Schlüsselwort »full«, um alle Details zu erhalten."
 
-#: VirtualMailManager/VirtualMailManager.py:586
+#: VirtualMailManager/VirtualMailManager.py:584
 #, python-format
 msgid "The pattern »%s« contains invalid characters."
 msgstr "Das Muster »%s« enthält ungültige Zeichen."
 
-#: VirtualMailManager/VirtualMailManager.py:611
+#: VirtualMailManager/VirtualMailManager.py:609
 #, python-format
 msgid "The destination account/alias »%s« doesn't exists yet."
 msgstr "Der Ziel-Account/-Alias »%s« existiert noch nicht."
 
-#: VirtualMailManager/VirtualMailManager.py:628
+#: VirtualMailManager/VirtualMailManager.py:626
 #, python-format
 msgid ""
 "The account has been successfully deleted from the database.\n"
@@ -420,7 +421,7 @@
 "    »%(directory)s«\n"
 "    Grund: %(raeson)s"
 
-#: VirtualMailManager/VirtualMailManager.py:660
+#: VirtualMailManager/VirtualMailManager.py:666
 msgid "Account doesn't exists"
 msgstr "Der Account existiert nicht"
 
@@ -442,57 +443,57 @@
 "  kurz  lang\n"
 "  Unterbefehl              Objekt             args (* = optional)\n"
 
-#: vmm:79 vmm:90 vmm:487
+#: vmm:79 vmm:90 vmm:494
 msgid "Error"
 msgstr "Fehler"
 
-#: vmm:112
+#: vmm:113
 msgid "information"
 msgstr "Informationen"
 
-#: vmm:122
+#: vmm:123
 msgid "Available"
 msgstr "Verfügbare"
 
-#: vmm:125 vmm:224 vmm:230
+#: vmm:126 vmm:225 vmm:231
 msgid "alias domains"
 msgstr "Alias-Domains"
 
-#: vmm:135 vmm:146 vmm:170
+#: vmm:136 vmm:147 vmm:171
 msgid "\tNone"
 msgstr "\tKeine"
 
-#: vmm:139
+#: vmm:140
 msgid "Alias information"
 msgstr "Alias Informationen"
 
-#: vmm:141
+#: vmm:142
 #, python-format
 msgid "\tMail for %s will be redirected to:"
 msgstr "\tE-Mails für %s werden weitergeleitet an:"
 
-#: vmm:150
+#: vmm:151
 msgid "Relocated information"
 msgstr "Relocated Informationen"
 
-#: vmm:152
+#: vmm:153
 #, python-format
 msgid "\tUser »%(addr)s« has moved to »%(dest)s«"
 msgstr "\tDer Benutzer »%(addr)s« ist erreichbar unter »%(dest)s«"
 
-#: vmm:165
+#: vmm:166
 msgid "Available domains"
 msgstr "Verfügbare Domains"
 
-#: vmm:167
+#: vmm:168
 msgid "Matching domains"
 msgstr "Übereinstimmende Domains"
 
-#: vmm:181
+#: vmm:182
 msgid "Alias domain information"
 msgstr "Alias-Domain Informationen"
 
-#: vmm:187
+#: vmm:188
 #, python-format
 msgid ""
 "\tThe alias domain %(alias)s belongs to:\n"
@@ -501,110 +502,114 @@
 "\tDie Alias-Domain %(alias)s gehört zu:\n"
 "\t    * %(domain)s"
 
-#: vmm:198 vmm:206 vmm:214
+#: vmm:199 vmm:207 vmm:215
 msgid "Missing domain name."
 msgstr "Kein Domain-Name angegeben."
 
-#: vmm:216 vmm:220
+#: vmm:217 vmm:221
 msgid "Domain"
 msgstr "Domain"
 
-#: vmm:222 vmm:231
+#: vmm:223 vmm:232
 msgid "accounts"
 msgstr "Accounts"
 
-#: vmm:226 vmm:232
+#: vmm:227 vmm:233
 msgid "aliases"
 msgstr "Aliase"
 
-#: vmm:228 vmm:233
+#: vmm:229 vmm:234
 msgid "relocated users"
 msgstr "Relocated Users"
 
-#: vmm:237
+#: vmm:238
 msgid "Missing domain name and new transport."
 msgstr "Domain-Name und neuer Transport fehlen."
 
-#: vmm:239
+#: vmm:240
 msgid "Missing new transport."
 msgstr "Neuer Transport fehlt."
 
-#: vmm:248 vmm:263
+#: vmm:249 vmm:264
 msgid "Missing alias domain name and target domain name."
 msgstr "Domain-Namen für Alias- und Ziel-Domain fehlen."
 
-#: vmm:250 vmm:265
+#: vmm:251 vmm:266
 msgid "Missing target domain name."
 msgstr "Keine Ziel-Domain angegeben."
 
-#: vmm:256 vmm:271
+#: vmm:257 vmm:272
 msgid "Missing alias domain name."
 msgstr "Keine Alias-Domain angegeben."
 
-#: vmm:277 vmm:286 vmm:294 vmm:318 vmm:326 vmm:334
+#: vmm:278 vmm:287 vmm:295 vmm:325 vmm:333 vmm:341
 msgid "Missing e-mail address."
 msgstr "E-Mail-Adresse fehlt."
 
-#: vmm:302
+#: vmm:303
+msgid "alias addresses"
+msgstr "Alias-Adressen"
+
+#: vmm:309
 msgid "Missing e-mail address and users name."
 msgstr "E-Mail-Adresse und der Name des Benutzers fehlen."
 
-#: vmm:304
+#: vmm:311
 msgid "Missing users name."
 msgstr "Name des Benutzers fehlt."
 
-#: vmm:310
+#: vmm:317
 msgid "Missing e-mail address and transport."
 msgstr "E-Mail-Adresse und Transport fehlen."
 
-#: vmm:312
+#: vmm:319
 msgid "Missing transport."
 msgstr "Transport fehlt."
 
-#: vmm:343
+#: vmm:350
 msgid "Missing alias address and destination."
 msgstr "Alias- und Ziel-Adresse fehlen."
 
-#: vmm:345 vmm:368
+#: vmm:352 vmm:375
 msgid "Missing destination address."
 msgstr "Die Ziel-Adresse fehlt."
 
-#: vmm:351 vmm:357
+#: vmm:358 vmm:364
 msgid "Missing alias address"
 msgstr "Die Alias-Adresse fehlt."
 
-#: vmm:366
+#: vmm:373
 msgid "Missing relocated address and destination."
 msgstr "Die Adresse des relocated Users und Ziel-Adresse fehlen."
 
-#: vmm:374 vmm:382
+#: vmm:381 vmm:389
 msgid "Missing relocated address"
 msgstr "Die Adresse des relocated Users fehlt."
 
-#: vmm:388
+#: vmm:395
 msgid "Missing userid"
 msgstr "Keine UID angegeben."
 
-#: vmm:401
+#: vmm:408
 msgid "Warnings:"
 msgstr "Warnungen:"
 
-#: vmm:406
+#: vmm:413
 msgid "version"
 msgstr "Version"
 
-#: vmm:407
+#: vmm:414
 msgid "from"
 msgstr "vom"
 
-#: vmm:409
+#: vmm:416
 msgid "on"
 msgstr "auf"
 
-#: vmm:482
+#: vmm:489
 msgid "Unknown subcommand"
 msgstr "Unbekannter Unterbefehl"
 
-#: vmm:485
+#: vmm:492
 msgid "Ouch"
 msgstr "Autsch"
--- a/po/vmm.pot	Thu Sep 18 18:40:54 2008 +0000
+++ b/po/vmm.pot	Sun Oct 05 03:33:38 2008 +0000
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: vmm 0.5\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-09-18 00:43+0200\n"
+"POT-Creation-Date: 2008-10-05 05:20+0200\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"
@@ -39,7 +39,7 @@
 msgstr ""
 
 #: VirtualMailManager/Account.py:88 VirtualMailManager/Account.py:154
-#: VirtualMailManager/Account.py:181 VirtualMailManager/Account.py:202
+#: VirtualMailManager/Account.py:181 VirtualMailManager/Account.py:215
 #, python-format
 msgid "The account »%s« doesn't exists."
 msgstr ""
@@ -57,20 +57,20 @@
 msgid "disabled"
 msgstr ""
 
-#: VirtualMailManager/Account.py:224
+#: VirtualMailManager/Account.py:237
 #, python-format
 msgid "There are %(count)d aliases with the destination address »%(address)s«."
 msgstr ""
 
-#: VirtualMailManager/Account.py:232
+#: VirtualMailManager/Account.py:245
 msgid "uid must be an int/long."
 msgstr ""
 
-#: VirtualMailManager/Account.py:234
+#: VirtualMailManager/Account.py:247
 msgid "uid must be greater than 0."
 msgstr ""
 
-#: VirtualMailManager/Account.py:242
+#: VirtualMailManager/Account.py:255
 #, python-format
 msgid "There is no account with the UID »%d«."
 msgstr ""
@@ -364,7 +364,8 @@
 
 #: VirtualMailManager/VirtualMailManager.py:487
 #: VirtualMailManager/VirtualMailManager.py:506
-#: VirtualMailManager/VirtualMailManager.py:616
+#: VirtualMailManager/VirtualMailManager.py:614
+#: VirtualMailManager/VirtualMailManager.py:645
 #, python-format
 msgid "Invalid argument: »%s«"
 msgstr ""
@@ -376,17 +377,17 @@
 "    Please use the keyword »full« to get full details."
 msgstr ""
 
-#: VirtualMailManager/VirtualMailManager.py:586
+#: VirtualMailManager/VirtualMailManager.py:584
 #, python-format
 msgid "The pattern »%s« contains invalid characters."
 msgstr ""
 
-#: VirtualMailManager/VirtualMailManager.py:611
+#: VirtualMailManager/VirtualMailManager.py:609
 #, python-format
 msgid "The destination account/alias »%s« doesn't exists yet."
 msgstr ""
 
-#: VirtualMailManager/VirtualMailManager.py:628
+#: VirtualMailManager/VirtualMailManager.py:626
 #, python-format
 msgid ""
 "The account has been successfully deleted from the database.\n"
@@ -395,7 +396,7 @@
 "    Reason: %(raeson)s"
 msgstr ""
 
-#: VirtualMailManager/VirtualMailManager.py:660
+#: VirtualMailManager/VirtualMailManager.py:666
 msgid "Account doesn't exists"
 msgstr ""
 
@@ -413,167 +414,171 @@
 "  subcommand               object             args (* = optional)\n"
 msgstr ""
 
-#: vmm:79 vmm:90 vmm:487
+#: vmm:79 vmm:90 vmm:494
 msgid "Error"
 msgstr ""
 
-#: vmm:112
+#: vmm:113
 msgid "information"
 msgstr ""
 
-#: vmm:122
+#: vmm:123
 msgid "Available"
 msgstr ""
 
-#: vmm:125 vmm:224 vmm:230
+#: vmm:126 vmm:225 vmm:231
 msgid "alias domains"
 msgstr ""
 
-#: vmm:135 vmm:146 vmm:170
+#: vmm:136 vmm:147 vmm:171
 msgid "\tNone"
 msgstr ""
 
-#: vmm:139
+#: vmm:140
 msgid "Alias information"
 msgstr ""
 
-#: vmm:141
+#: vmm:142
 #, python-format
 msgid "\tMail for %s will be redirected to:"
 msgstr ""
 
-#: vmm:150
+#: vmm:151
 msgid "Relocated information"
 msgstr ""
 
-#: vmm:152
+#: vmm:153
 #, python-format
 msgid "\tUser »%(addr)s« has moved to »%(dest)s«"
 msgstr ""
 
-#: vmm:165
+#: vmm:166
 msgid "Available domains"
 msgstr ""
 
-#: vmm:167
+#: vmm:168
 msgid "Matching domains"
 msgstr ""
 
-#: vmm:181
+#: vmm:182
 msgid "Alias domain information"
 msgstr ""
 
-#: vmm:187
+#: vmm:188
 #, python-format
 msgid ""
 "\tThe alias domain %(alias)s belongs to:\n"
 "\t    * %(domain)s"
 msgstr ""
 
-#: vmm:198 vmm:206 vmm:214
+#: vmm:199 vmm:207 vmm:215
 msgid "Missing domain name."
 msgstr ""
 
-#: vmm:216 vmm:220
+#: vmm:217 vmm:221
 msgid "Domain"
 msgstr ""
 
-#: vmm:222 vmm:231
+#: vmm:223 vmm:232
 msgid "accounts"
 msgstr ""
 
-#: vmm:226 vmm:232
+#: vmm:227 vmm:233
 msgid "aliases"
 msgstr ""
 
-#: vmm:228 vmm:233
+#: vmm:229 vmm:234
 msgid "relocated users"
 msgstr ""
 
-#: vmm:237
+#: vmm:238
 msgid "Missing domain name and new transport."
 msgstr ""
 
-#: vmm:239
+#: vmm:240
 msgid "Missing new transport."
 msgstr ""
 
-#: vmm:248 vmm:263
+#: vmm:249 vmm:264
 msgid "Missing alias domain name and target domain name."
 msgstr ""
 
-#: vmm:250 vmm:265
+#: vmm:251 vmm:266
 msgid "Missing target domain name."
 msgstr ""
 
-#: vmm:256 vmm:271
+#: vmm:257 vmm:272
 msgid "Missing alias domain name."
 msgstr ""
 
-#: vmm:277 vmm:286 vmm:294 vmm:318 vmm:326 vmm:334
+#: vmm:278 vmm:287 vmm:295 vmm:325 vmm:333 vmm:341
 msgid "Missing e-mail address."
 msgstr ""
 
-#: vmm:302
+#: vmm:303
+msgid "alias addresses"
+msgstr ""
+
+#: vmm:309
 msgid "Missing e-mail address and users name."
 msgstr ""
 
-#: vmm:304
+#: vmm:311
 msgid "Missing users name."
 msgstr ""
 
-#: vmm:310
+#: vmm:317
 msgid "Missing e-mail address and transport."
 msgstr ""
 
-#: vmm:312
+#: vmm:319
 msgid "Missing transport."
 msgstr ""
 
-#: vmm:343
+#: vmm:350
 msgid "Missing alias address and destination."
 msgstr ""
 
-#: vmm:345 vmm:368
+#: vmm:352 vmm:375
 msgid "Missing destination address."
 msgstr ""
 
-#: vmm:351 vmm:357
+#: vmm:358 vmm:364
 msgid "Missing alias address"
 msgstr ""
 
-#: vmm:366
+#: vmm:373
 msgid "Missing relocated address and destination."
 msgstr ""
 
-#: vmm:374 vmm:382
+#: vmm:381 vmm:389
 msgid "Missing relocated address"
 msgstr ""
 
-#: vmm:388
+#: vmm:395
 msgid "Missing userid"
 msgstr ""
 
-#: vmm:401
+#: vmm:408
 msgid "Warnings:"
 msgstr ""
 
-#: vmm:406
+#: vmm:413
 msgid "version"
 msgstr ""
 
-#: vmm:407
+#: vmm:414
 msgid "from"
 msgstr ""
 
-#: vmm:409
+#: vmm:416
 msgid "on"
 msgstr ""
 
-#: vmm:482
+#: vmm:489
 msgid "Unknown subcommand"
 msgstr ""
 
-#: vmm:485
+#: vmm:492
 msgid "Ouch"
 msgstr ""
--- a/vmm	Thu Sep 18 18:40:54 2008 +0000
+++ b/vmm	Sun Oct 05 03:33:38 2008 +0000
@@ -53,7 +53,7 @@
   ads   aliasdomainswitch  aliasdomain.tld    domain.tld
   add   aliasdomaindelete  aliasdomain.tld
   ua    useradd            user@domain.tld    password*
-  ui    userinfo           user@domain.tld    du*
+  ui    userinfo           user@domain.tld    details*
   un    username           user@domain.tld    'Users Name'
   up    userpassword       user@domain.tld    password*
   ut    usertransport      user@domain.tld    transport
@@ -96,7 +96,8 @@
                 ('domaindir', 0), ('aliasdomains', 0), ('accounts', 0),
                 ('aliases', 0), ('relocated', 0))
     elif argv[1] in ['ui', 'userinfo']:
-        if argc == 4 or vmm.cfgGetBoolean('maildir', 'diskusage'):
+        if argc == 4 and argv[3] != 'aliases'\
+        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))
@@ -295,7 +296,13 @@
     elif argc < 4:
         _printInfo(vmm.userInfo(argv[2].lower()), 'Account')
     else:
-        _printInfo(vmm.userInfo(argv[2].lower(), True), 'Account')
+        arg3 = argv[3].lower()
+        info = vmm.userInfo(argv[2].lower(), arg3)
+        if arg3 in ['aliases', 'full']:
+            _printInfo(info[0], 'Account')
+            _printList(info[1], _(u'alias addresses'))
+        else:
+            _printInfo(info, 'Account')
 
 def user_name():
     if argc < 3: