VirtualMailManager/Handler.py
branchv0.6.x
changeset 236 084331dd1e4c
parent 233 55503d63ba30
child 237 09b7e3fe29b3
--- a/VirtualMailManager/Handler.py	Sat Apr 03 02:14:13 2010 +0000
+++ b/VirtualMailManager/Handler.py	Sun Apr 04 08:16:46 2010 +0000
@@ -30,6 +30,7 @@
 from VirtualMailManager.EmailAddress import EmailAddress
 from VirtualMailManager.errors import VMMError, AliasError, DomainError
 from VirtualMailManager.Relocated import Relocated
+from VirtualMailManager.Transport import Transport
 from VirtualMailManager.ext.Postconf import Postconf
 
 
@@ -191,12 +192,9 @@
         self.__dbConnect()
         return Relocated(self._dbh, address)
 
-    def __getDomain(self, domainname, transport=None):
-        if transport is None:
-            transport = self._Cfg.dget('misc.transport')
+    def __getDomain(self, domainname):
         self.__dbConnect()
-        return Domain(self._dbh, domainname,
-                self._Cfg.dget('misc.base_directory'), transport)
+        return Domain(self._dbh, domainname)
 
     def __getDiskUsage(self, directory):
         """Estimate file space usage for the given directory.
@@ -227,6 +225,7 @@
         os.chown(directory, uid, gid)
 
     def __domDirMake(self, domdir, gid):
+        #TODO: clenaup!
         os.umask(0006)
         oldpwd = os.getcwd()
         basedir = self._Cfg.dget('misc.base_directory')
@@ -411,19 +410,26 @@
         return self._Cfg.pget(option)
 
     def domainAdd(self, domainname, transport=None):
-        dom = self.__getDomain(domainname, transport)
+        dom = self.__getDomain(domainname)
+        if transport is None:
+            dom.set_transport(Transport(self._dbh,
+                              transport=self._Cfg.dget('misc.transport')))
+        else:
+            dom.set_transport(Transport(self._dbh, transport=transport))
+        dom.set_directory(self._Cfg.dget('misc.base_directory'))
         dom.save()
-        self.__domDirMake(dom.getDir(), dom.getID())
+        self.__domDirMake(dom.directory, dom.gid)
 
     def domainTransport(self, domainname, transport, force=None):
         if force is not None and force != 'force':
             raise DomainError(_(u"Invalid argument: “%s”") % force,
                 ERR.INVALID_OPTION)
-        dom = self.__getDomain(domainname, None)
+        dom = self.__getDomain(domainname)
+        trsp = Transport(self._dbh, transport=transport)
         if force is None:
-            dom.updateTransport(transport)
+            dom.update_transport(trsp)
         else:
-            dom.updateTransport(transport, force=True)
+            dom.update_transport(trsp, force=True)
 
     def domainDelete(self, domainname, force=None):
         if not force is None and force not in ['deluser', 'delalias',
@@ -431,14 +437,14 @@
                 raise DomainError(_(u'Invalid argument: “%s”') %
                                          force, ERR.INVALID_OPTION)
         dom = self.__getDomain(domainname)
-        gid = dom.getID()
-        domdir = dom.getDir()
+        gid = dom.gid
+        domdir = dom.directory
         if self._Cfg.dget('domain.force_deletion') or force == 'delall':
             dom.delete(True, True)
         elif force == 'deluser':
-            dom.delete(delUser=True)
+            dom.delete(deluser=True)
         elif force == 'delalias':
-            dom.delete(delAlias=True)
+            dom.delete(delalias=True)
         else:
             dom.delete()
         if self._Cfg.dget('domain.delete_directory'):
@@ -450,22 +456,22 @@
             raise VMMError(_(u'Invalid argument: “%s”') % details,
                                ERR.INVALID_AGUMENT)
         dom = self.__getDomain(domainname)
-        dominfo = dom.getInfo()
+        dominfo = dom.get_info()
         if dominfo['domainname'].startswith('xn--'):
             dominfo['domainname'] += ' (%s)' % ace2idna(dominfo['domainname'])
         if details is None:
             return dominfo
         elif details == 'accounts':
-            return (dominfo, dom.getAccounts())
+            return (dominfo, dom.get_accounts())
         elif details == 'aliasdomains':
-            return (dominfo, dom.getAliaseNames())
+            return (dominfo, dom.get_aliase_names())
         elif details == 'aliases':
-            return (dominfo, dom.getAliases())
+            return (dominfo, dom.get_aliases())
         elif details == 'relocated':
-            return(dominfo, dom.getRelocated())
+            return(dominfo, dom.get_relocated())
         else:
-            return (dominfo, dom.getAliaseNames(), dom.getAccounts(),
-                    dom.getAliases(), dom.getRelocated())
+            return (dominfo, dom.get_aliase_names(), dom.get_accounts(),
+                    dom.get_aliases(), dom.get_relocated())
 
     def aliasDomainAdd(self, aliasname, domainname):
         """Adds an alias domain to the domain.