VirtualMailManager/Domain.py
branchv0.6.x
changeset 290 e2785e04f92e
parent 254 8aecc83a0d32
child 294 7d1bafc6fa30
equal deleted inserted replaced
289:142f188f7552 290:e2785e04f92e
    61 
    61 
    62         Raises a DomainError if Domain._name isn't the primary name of the
    62         Raises a DomainError if Domain._name isn't the primary name of the
    63         domain.
    63         domain.
    64         """
    64         """
    65         dbc = self._dbh.cursor()
    65         dbc = self._dbh.cursor()
    66         dbc.execute('SELECT dd.gid, tid, domaindir, is_primary FROM \
    66         dbc.execute('SELECT dd.gid, tid, domaindir, is_primary FROM '
    67  domain_data dd, domain_name dn WHERE domainname = %s AND dn.gid = dd.gid',
    67                     'domain_data dd, domain_name dn WHERE domainname = %s AND '
    68                     self._name)
    68                     'dn.gid = dd.gid', self._name)
    69         result = dbc.fetchone()
    69         result = dbc.fetchone()
    70         dbc.close()
    70         dbc.close()
    71         if result:
    71         if result:
    72             if not result[3]:
    72             if not result[3]:
    73                 raise DomErr(_(u"The domain '%s' is an alias domain.") %
    73                 raise DomErr(_(u"The domain '%s' is an alias domain.") %
   248         self._transport = transport
   248         self._transport = transport
   249 
   249 
   250     def get_info(self):
   250     def get_info(self):
   251         """Returns a dictionary with information about the domain."""
   251         """Returns a dictionary with information about the domain."""
   252         self._chk_state()
   252         self._chk_state()
   253         sql = """SELECT gid, domainname, transport, domaindir, aliasdomains,
   253         dbc = self._dbh.cursor()
   254        accounts, aliases, relocated
   254         dbc.execute('SELECT gid, domainname, transport, domaindir, '
   255   FROM vmm_domain_info
   255                     'aliasdomains accounts, aliases, relocated FROM '
   256  WHERE gid = %i""" % self._gid
   256                     'vmm_domain_info WHERE gid = %s', self._gid)
   257         dbc = self._dbh.cursor()
       
   258         dbc.execute(sql)
       
   259         info = dbc.fetchone()
   257         info = dbc.fetchone()
   260         dbc.close()
   258         dbc.close()
   261         keys = ('gid', 'domainname', 'transport', 'domaindir', 'aliasdomains',
   259         keys = ('gid', 'domainname', 'transport', 'domaindir', 'aliasdomains',
   262                 'accounts', 'aliases', 'relocated')
   260                 'accounts', 'aliases', 'relocated')
   263         return dict(zip(keys, info))
   261         return dict(zip(keys, info))
   264 
   262 
   265     def get_accounts(self):
   263     def get_accounts(self):
   266         """Returns a list with all accounts of the domain."""
   264         """Returns a list with all accounts of the domain."""
   267         self._chk_state()
   265         self._chk_state()
   268         dbc = self._dbh.cursor()
   266         dbc = self._dbh.cursor()
   269         dbc.execute("SELECT local_part from users where gid = %s ORDER BY\
   267         dbc.execute('SELECT local_part from users where gid = %s ORDER BY '
   270  local_part", self._gid)
   268                     'local_part', self._gid)
   271         users = dbc.fetchall()
   269         users = dbc.fetchall()
   272         dbc.close()
   270         dbc.close()
   273         accounts = []
   271         accounts = []
   274         if len(users) > 0:
   272         if users:
   275             addr = u'@'.join
   273             addr = u'@'.join
   276             _dom = self._name
   274             _dom = self._name
   277             accounts = [addr((account[0], _dom)) for account in users]
   275             accounts = [addr((account[0], _dom)) for account in users]
   278         return accounts
   276         return accounts
   279 
   277 
   280     def get_aliases(self):
   278     def get_aliases(self):
   281         """Returns a list with all aliases e-mail addresses of the domain."""
   279         """Returns a list with all aliases e-mail addresses of the domain."""
   282         self._chk_state()
   280         self._chk_state()
   283         dbc = self._dbh.cursor()
   281         dbc = self._dbh.cursor()
   284         dbc.execute("SELECT DISTINCT address FROM alias WHERE gid = %s\
   282         dbc.execute('SELECT DISTINCT address FROM alias WHERE gid = %s ORDER '
   285  ORDER BY address", self._gid)
   283                     'BY address', self._gid)
   286         addresses = dbc.fetchall()
   284         addresses = dbc.fetchall()
   287         dbc.close()
   285         dbc.close()
   288         aliases = []
   286         aliases = []
   289         if addresses:
   287         if addresses:
   290             addr = u'@'.join
   288             addr = u'@'.join
   294 
   292 
   295     def get_relocated(self):
   293     def get_relocated(self):
   296         """Returns a list with all addresses of relocated users."""
   294         """Returns a list with all addresses of relocated users."""
   297         self._chk_state()
   295         self._chk_state()
   298         dbc = self._dbh.cursor()
   296         dbc = self._dbh.cursor()
   299         dbc.execute("SELECT address FROM relocated WHERE gid = %s\
   297         dbc.execute('SELECT address FROM relocated WHERE gid = %s ORDER BY '
   300  ORDER BY address", self._gid)
   298                     'address', self._gid)
   301         addresses = dbc.fetchall()
   299         addresses = dbc.fetchall()
   302         dbc.close()
   300         dbc.close()
   303         relocated = []
   301         relocated = []
   304         if addresses:
   302         if addresses:
   305             addr = u'@'.join
   303             addr = u'@'.join
   309 
   307 
   310     def get_aliase_names(self):
   308     def get_aliase_names(self):
   311         """Returns a list with all alias domain names of the domain."""
   309         """Returns a list with all alias domain names of the domain."""
   312         self._chk_state()
   310         self._chk_state()
   313         dbc = self._dbh.cursor()
   311         dbc = self._dbh.cursor()
   314         dbc.execute("SELECT domainname FROM domain_name WHERE gid = %s\
   312         dbc.execute('SELECT domainname FROM domain_name WHERE gid = %s AND '
   315  AND NOT is_primary ORDER BY domainname", self._gid)
   313                     'NOT is_primary ORDER BY domainname', self._gid)
   316         anames = dbc.fetchall()
   314         anames = dbc.fetchall()
   317         dbc.close()
   315         dbc.close()
   318         aliasdomains = []
   316         aliasdomains = []
   319         if anames:
   317         if anames:
   320             aliasdomains = [aname[0] for aname in anames]
   318             aliasdomains = [aname[0] for aname in anames]