VirtualMailManager/cli/handler.py
changeset 760 b678a1c43027
parent 748 659c4476c57c
child 761 e4e656f19771
--- a/VirtualMailManager/cli/handler.py	Mon Mar 24 19:22:04 2014 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,99 +0,0 @@
-# -*- coding: UTF-8 -*-
-# Copyright (c) 2010 - 2014, Pascal Volk
-# See COPYING for distribution information.
-"""
-    VirtualMailManager.cli.handler
-    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-    A derived Handler class with a few changes/additions for cli use.
-"""
-
-import os
-
-from VirtualMailManager.errors import VMMError
-from VirtualMailManager.handler import Handler
-from VirtualMailManager.cli import read_pass
-from VirtualMailManager.cli.config import CliConfig as Cfg
-from VirtualMailManager.constants import ACCOUNT_EXISTS, INVALID_SECTION, \
-     NO_SUCH_ACCOUNT, TYPE_ACCOUNT
-from VirtualMailManager.password import randompw
-
-_ = lambda msg: msg
-
-
-class CliHandler(Handler):
-    """This class uses a `CliConfig` for configuration stuff, instead of
-    the non-interactive `Config` class.
-
-    It provides the additional methods cfgSet() and configure().
-
-    Additionally it uses `VirtualMailManager.cli.read_pass()` for for the
-    interactive password dialog.
-    """
-
-    __slots__ = ()  # nothing additional, also no __dict__/__weakref__
-
-    def __init__(self):
-        """Creates a new CliHandler instance.
-
-        Throws a NotRootError if your uid is greater 0.
-        """
-        # Overwrite the parent CTor partly, we use the CliConfig class
-        # and add some command line checks.
-        skip_some_checks = os.sys.argv[1] in ('cf', 'configure', 'h', 'help',
-                                              'v', 'version')
-        super(CliHandler, self).__init__(skip_some_checks)
-
-        self._cfg = Cfg(self._cfg_fname)
-        self._cfg.load()
-
-    def cfg_set(self, option, value):
-        """Set a new value for the given option."""
-        return self._cfg.set(option, value)
-
-    def configure(self, section=None):
-        """Starts the interactive configuration.
-
-        Configures in interactive mode options in the given ``section``.
-        If no section is given (default) all options from all sections
-        will be prompted.
-        """
-        if section is None:
-            self._cfg.configure(self._cfg.sections())
-        elif self._cfg.has_section(section):
-            self._cfg.configure([section])
-        else:
-            raise VMMError(_(u"Invalid section: '%s'") % section,
-                           INVALID_SECTION)
-
-    def user_add(self, emailaddress, password=None):
-        """Override the parent user_add() - add the interactive password
-        dialog.
-
-        Returns the generated password, if account.random_password == True.
-        """
-        acc = self._get_account(emailaddress)
-        if acc:
-            raise VMMError(_(u"The account '%s' already exists.") %
-                           acc.address, ACCOUNT_EXISTS)
-        self._is_other_address(acc.address, TYPE_ACCOUNT)
-        rand_pass = self._cfg.dget('account.random_password')
-        if password is None:
-            password = (read_pass, randompw)[rand_pass]()
-        acc.set_password(password)
-        acc.save()
-        self._make_account_dirs(acc)
-        return (None, password)[rand_pass]
-
-    def user_password(self, emailaddress, password=None):
-        """Override the parent user_password() - add the interactive
-        password dialog."""
-        acc = self._get_account(emailaddress)
-        if not acc:
-            raise VMMError(_(u"The account '%s' does not exist.") %
-                           acc.address, NO_SUCH_ACCOUNT)
-        if not isinstance(password, basestring) or not password:
-            password = read_pass()
-        acc.modify('password', password)
-
-del _