# HG changeset patch # User Pascal Volk # Date 1358100771 0 # Node ID 5f4abdab738e2653daabdc66dd16e07ea439dcde # Parent c6024bc1de0fb6798a983e5b4b240015b99ec737 VMM: Added option `-n NOTE' to {domain,user}add. diff -r c6024bc1de0f -r 5f4abdab738e VirtualMailManager/cli/handler.py --- a/VirtualMailManager/cli/handler.py Sun Jan 13 17:24:01 2013 +0000 +++ b/VirtualMailManager/cli/handler.py Sun Jan 13 18:12:51 2013 +0000 @@ -66,7 +66,7 @@ raise VMMError(_("Invalid section: '%s'") % section, INVALID_SECTION) - def user_add(self, emailaddress, password=None): + def user_add(self, emailaddress, password=None, note=None): """Override the parent user_add() - add the interactive password dialog. @@ -81,6 +81,8 @@ if password is None: password = (read_pass, randompw)[rand_pass]() acc.set_password(password) + if note: + acc.set_note(note) acc.save() self._make_account_dirs(acc) return (None, password)[rand_pass] diff -r c6024bc1de0f -r 5f4abdab738e VirtualMailManager/cli/subcommands.py --- a/VirtualMailManager/cli/subcommands.py Sun Jan 13 17:24:01 2013 +0000 +++ b/VirtualMailManager/cli/subcommands.py Sun Jan 13 18:12:51 2013 +0000 @@ -167,12 +167,13 @@ """create a new domain""" fqdn = ctx.args.fqdn.lower() transport = ctx.args.transport.lower() if ctx.args.transport else None - ctx.hdlr.domain_add(fqdn, transport) + ctx.hdlr.domain_add(fqdn, transport, ctx.args.note) if ctx.cget('domain.auto_postmaster'): w_std(_('Creating account for postmaster@%s') % fqdn) ctx.args.scmd = 'useradd' ctx.args.address = 'postmaster@%s' % fqdn ctx.args.password = None + ctx.args.note = None user_add(ctx) @@ -339,7 +340,8 @@ def user_add(ctx): """create a new e-mail user with the given address""" - gen_pass = ctx.hdlr.user_add(ctx.args.address.lower(), ctx.args.password) + gen_pass = ctx.hdlr.user_add(ctx.args.address.lower(), ctx.args.password, + ctx.args.note) if not ctx.args.password and gen_pass: w_std(_("Generated password: %s") % gen_pass) @@ -615,6 +617,8 @@ "domain.")), formatter_class=RawDescriptionHelpFormatter) da.add_argument('fqdn', help=_('a fully qualified domain name')) + da.add_argument('-n', metavar='NOTE', dest='note', + help=_('the note that should be set')) da.add_argument('-t', metavar='TRANSPORT', dest='transport', help=_('a Postfix transport (transport: or ' 'transport:nexthop)')) @@ -771,6 +775,8 @@ formatter_class=RawDescriptionHelpFormatter) ua.add_argument('address', help=_("an account's e-mail address (local-part@fqdn)")) + ua.add_argument('-n', metavar='NOTE', dest='note', + help=_('the note that should be set')) ua.add_argument('-p', metavar='PASSWORD', dest='password', help=_("the new user's password")) ua.set_defaults(func=user_add, scmd='useradd') diff -r c6024bc1de0f -r 5f4abdab738e VirtualMailManager/handler.py --- a/VirtualMailManager/handler.py Sun Jan 13 17:24:01 2013 +0000 +++ b/VirtualMailManager/handler.py Sun Jan 13 18:12:51 2013 +0000 @@ -431,7 +431,7 @@ assert 'cfg_dget' not in builtins.__dict__ builtins.__dict__['cfg_dget'] = self._cfg.dget - def domain_add(self, domainname, transport=None): + def domain_add(self, domainname, transport=None, note=None): """Wrapper around Domain's set_quotalimit, set_transport and save.""" dom = self._get_domain(domainname) if transport is None: @@ -439,6 +439,8 @@ transport=self._cfg.dget('domain.transport'))) else: dom.set_transport(Transport(self._dbh, transport=transport)) + if note: + dom.set_note(note) dom.set_quotalimit(QuotaLimit(self._dbh, bytes=int(self._cfg.dget('domain.quota_bytes')), messages=self._cfg.dget('domain.quota_messages'))) @@ -626,7 +628,7 @@ lpattern=lpattern, llike=llike, dpattern=dpattern, dlike=dlike) - def user_add(self, emailaddress, password): + def user_add(self, emailaddress, password, note=None): """Wrapper around Account.set_password() and Account.save().""" acc = self._get_account(emailaddress) if acc: @@ -634,6 +636,8 @@ acc.address, ACCOUNT_EXISTS) self._is_other_address(acc.address, TYPE_ACCOUNT) acc.set_password(password) + if note: + acc.set_note(note) acc.save() self._make_account_dirs(acc)