vmm
changeset 142 28f26f7f3d8f
parent 138 617f27715b01
child 147 e3fd0b67ae50
equal deleted inserted replaced
141:ecd6a379e523 142:28f26f7f3d8f
    68         w_err(e.code(), "%s: %s\n" % (_(u'Error'), e.msg()))
    68         w_err(e.code(), "%s: %s\n" % (_(u'Error'), e.msg()))
    69 
    69 
    70 def _getOrder():
    70 def _getOrder():
    71     order = ()
    71     order = ()
    72     if vmm.cfgGetInt('misc', 'dovecotvers') > 11:
    72     if vmm.cfgGetInt('misc', 'dovecotvers') > 11:
    73         sieve_name = 'sieve'
    73         sieve_name = u'sieve'
    74     else:
    74     else:
    75         sieve_name = 'managesieve'
    75         sieve_name = u'managesieve'
    76     if argv[1] in ['di', 'domaininfo']:
    76     if argv[1] in ['di', 'domaininfo']:
    77         order = (('domainname', 0), ('gid', 1), ('transport', 0),
    77         order = ((u'domainname', 0), (u'gid', 1), (u'transport', 0),
    78                 ('domaindir', 0), ('aliasdomains', 0), ('accounts', 0),
    78                 (u'domaindir', 0), (u'aliasdomains', 0), (u'accounts', 0),
    79                 ('aliases', 0), ('relocated', 0))
    79                 (u'aliases', 0), (u'relocated', 0))
    80     elif argv[1] in ['ui', 'userinfo']:
    80     elif argv[1] in ['ui', 'userinfo']:
    81         if argc == 4 and argv[3] != 'aliases'\
    81         if argc == 4 and argv[3] != 'aliases'\
    82         or vmm.cfgGetBoolean('maildir', 'diskusage'):
    82         or vmm.cfgGetBoolean('maildir', 'diskusage'):
    83             order = (('address', 0), ('name', 0), ('uid', 1), ('gid', 1),
    83             order = ((u'address', 0), (u'name', 0), (u'uid', 1), (u'gid', 1),
    84                     ('transport', 0), ('maildir', 0), ('disk usage', 0),
    84                     (u'transport', 0), (u'maildir', 0), (u'disk usage', 0),
    85                     ('smtp', 1), ('pop3', 1), ('imap', 1), (sieve_name, 1))
    85                     (u'smtp', 1), (u'pop3', 1), (u'imap', 1), (sieve_name, 1))
    86         else:
    86         else:
    87             order = (('address', 0), ('name', 0), ('uid', 1), ('gid', 1),
    87             order = ((u'address', 0), (u'name', 0), (u'uid', 1), (u'gid', 1),
    88                     ('transport', 0), ('maildir', 0), ('smtp', 1), ('pop3', 1),
    88                     (u'transport', 0), (u'maildir', 0), (u'smtp', 1),
    89                     ('imap', 1), (sieve_name, 1))
    89                     (u'pop3', 1), (u'imap', 1), (sieve_name, 1))
    90     elif argv[1] in ['gu', 'getuser']:
    90     elif argv[1] in ['gu', 'getuser']:
    91         order = (('uid', 1), ('gid', 1), ('address', 0))
    91         order = ((u'uid', 1), (u'gid', 1), (u'address', 0))
    92     return order
    92     return order
    93 
    93 
    94 def _printInfo(info, title):
    94 def _printInfo(info, title):
    95     msg = '%s %s' % (title, _('information'))
    95     msg = u'%s %s' % (title, _(u'information'))
    96     w_std ('%s\n%s' % (msg, '-'*len(msg)))
    96     w_std (u'%s\n%s' % (msg, u'-'*len(msg)))
    97     for k,u in _getOrder():
    97     for k,u in _getOrder():
    98         if u:
    98         if u:
    99             w_std('\t%s: %s' % (k.upper().ljust(15, '.'), info[k]))
    99             w_std(u'\t%s: %s' % (k.upper().ljust(15, u'.'), info[k]))
   100         else:
   100         else:
   101             w_std('\t%s: %s' % (k.title().ljust(15, '.'), info[k]))
   101             w_std(u'\t%s: %s' % (k.title().ljust(15, u'.'), info[k]))
   102     print
   102     print
   103 
   103 
   104 def _printList(alist, title):
   104 def _printList(alist, title):
   105     msg = '%s %s' % (_('Available'), title)
   105     msg = u'%s %s' % (_(u'Available'), title)
   106     w_std('%s\n%s' % (msg, '-'*len(msg)))
   106     w_std(u'%s\n%s' % (msg, u'-'*len(msg)))
   107     if len(alist) > 0:
   107     if len(alist) > 0:
   108         if title != _('alias domains'):
   108         if title != _(u'alias domains'):
   109             for val in alist:
   109             for val in alist:
   110                 w_std('\t%s' % val)
   110                 w_std(u'\t%s' % val)
   111         else:
   111         else:
   112             for dom in alist:
   112             for dom in alist:
   113                 if not dom.startswith('xn--'):
   113                 if not dom.startswith('xn--'):
   114                     w_std('\t%s' % dom)
   114                     w_std(u'\t%s' % dom)
   115                 else:
   115                 else:
   116                     w_std('\t%s (%s)' % (dom, vmm.ace2idna(dom)))
   116                     w_std(u'\t%s (%s)' % (dom, vmm.ace2idna(dom)))
   117     else:
   117     else:
   118         w_std(_('\tNone'))
   118         w_std(_(u'\tNone'))
   119     print
   119     print
   120 
   120 
   121 def _printAliases(alias, targets):
   121 def _printAliases(alias, targets):
   122     msg = _('Alias information')
   122     msg = _(u'Alias information')
   123     w_std('%s\n%s' % (msg, '-'*len(msg)))
   123     w_std(u'%s\n%s' % (msg, u'-'*len(msg)))
   124     w_std(_('\tMail for %s will be redirected to:') % alias)
   124     w_std(_(u'\tMail for %s will be redirected to:') % alias)
   125     if len(targets) > 0:
   125     if len(targets) > 0:
   126         for target in targets:
   126         for target in targets:
   127             w_std('\t     * %s' % target)
   127             w_std(u'\t     * %s' % target)
   128     else:
   128     else:
   129         w_std(_('\tNone'))
   129         w_std(_(u'\tNone'))
   130     print
   130     print
   131 
   131 
   132 def _printRelocated(addr_dest):
   132 def _printRelocated(addr_dest):
   133     msg = _(u'Relocated information')
   133     msg = _(u'Relocated information')
   134     w_std('%s\n%s' % (msg, '-'*len(msg)))
   134     w_std(u'%s\n%s' % (msg, u'-'*len(msg)))
   135     w_std(_(u'\tUser “%(addr)s” has moved to “%(dest)s”') % addr_dest)
   135     w_std(_(u'\tUser “%(addr)s” has moved to “%(dest)s”') % addr_dest)
   136     print
   136     print
   137 
   137 
   138 def _formatDom(domain, main=True):
   138 def _formatDom(domain, main=True):
   139     if domain.startswith('xn--'):
   139     if domain.startswith('xn--'):
   140         domain = '%s (%s)' % (domain, vmm.ace2idna(domain))
   140         domain = u'%s (%s)' % (domain, vmm.ace2idna(domain))
   141     if main:
   141     if main:
   142         return '\t[+] %s' %  domain
   142         return u'\t[+] %s' %  domain
   143     else:
   143     else:
   144         return '\t[-]     %s' % domain
   144         return u'\t[-]     %s' % domain
   145 
   145 
   146 def _printDomList(dids, domains):
   146 def _printDomList(dids, domains):
   147     if argc < 3:
   147     if argc < 3:
   148         msg = _('Available domains')
   148         msg = _('Available domains')
   149     else:
   149     else:
   194 
   194 
   195 def domain_info():
   195 def domain_info():
   196     if argc < 3:
   196     if argc < 3:
   197         usage(EXIT.MISSING_ARGS, _(u'Missing domain name.'))
   197         usage(EXIT.MISSING_ARGS, _(u'Missing domain name.'))
   198     elif argc < 4:
   198     elif argc < 4:
   199         _printInfo(vmm.domainInfo(argv[2].lower()), _('Domain'))
   199         _printInfo(vmm.domainInfo(argv[2].lower()), _(u'Domain'))
   200     else:
   200     else:
   201         details = argv[3].lower()
   201         details = argv[3].lower()
   202         infos = vmm.domainInfo(argv[2].lower(), details)
   202         infos = vmm.domainInfo(argv[2].lower(), details)
   203         _printInfo(infos[0], _('Domain'))
   203         _printInfo(infos[0], _(u'Domain'))
   204         if details == 'accounts':
   204         if details == 'accounts':
   205             _printList(infos[1], _('accounts'))
   205             _printList(infos[1], _(u'accounts'))
   206         elif details == 'aliasdomains':
   206         elif details == 'aliasdomains':
   207             _printList(infos[1], _('alias domains'))
   207             _printList(infos[1], _(u'alias domains'))
   208         elif details == 'aliases':
   208         elif details == 'aliases':
   209             _printList(infos[1], _('aliases'))
   209             _printList(infos[1], _(u'aliases'))
   210         elif details == 'relocated':
   210         elif details == 'relocated':
   211             _printList(infos[1], _('relocated users'))
   211             _printList(infos[1], _(u'relocated users'))
   212         else:
   212         else:
   213             _printList(infos[1], _('alias domains'))
   213             _printList(infos[1], _(u'alias domains'))
   214             _printList(infos[2], _('accounts'))
   214             _printList(infos[2], _(u'accounts'))
   215             _printList(infos[3], _('aliases'))
   215             _printList(infos[3], _(u'aliases'))
   216             _printList(infos[4], _('relocated users'))
   216             _printList(infos[4], _(u'relocated users'))
   217 
   217 
   218 def domain_transport():
   218 def domain_transport():
   219     if argc < 3:
   219     if argc < 3:
   220         usage(EXIT.MISSING_ARGS, _(u'Missing domain name and new transport.'))
   220         usage(EXIT.MISSING_ARGS, _(u'Missing domain name and new transport.'))
   221     if argc < 4:
   221     if argc < 4:
   274 
   274 
   275 def user_info():
   275 def user_info():
   276     if argc < 3:
   276     if argc < 3:
   277         usage(EXIT.MISSING_ARGS, _(u'Missing e-mail address.'))
   277         usage(EXIT.MISSING_ARGS, _(u'Missing e-mail address.'))
   278     elif argc < 4:
   278     elif argc < 4:
   279         _printInfo(vmm.userInfo(argv[2].lower()), 'Account')
   279         _printInfo(vmm.userInfo(argv[2].lower()), u'Account')
   280     else:
   280     else:
   281         arg3 = argv[3].lower()
   281         arg3 = argv[3].lower()
   282         info = vmm.userInfo(argv[2].lower(), arg3)
   282         info = vmm.userInfo(argv[2].lower(), arg3)
   283         if arg3 in ['aliases', 'full']:
   283         if arg3 in ['aliases', 'full']:
   284             _printInfo(info[0], 'Account')
   284             _printInfo(info[0], u'Account')
   285             _printList(info[1], _(u'alias addresses'))
   285             _printList(info[1], _(u'alias addresses'))
   286         else:
   286         else:
   287             _printInfo(info, 'Account')
   287             _printInfo(info, u'Account')
   288 
   288 
   289 def user_name():
   289 def user_name():
   290     if argc < 3:
   290     if argc < 3:
   291         usage(EXIT.MISSING_ARGS, _(u'Missing e-mail address and users name.'))
   291         usage(EXIT.MISSING_ARGS, _(u'Missing e-mail address and users name.'))
   292     if argc < 4:
   292     if argc < 4: