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] |