diff -r f5ca21303871 -r c152d7714802 VirtualMailManager/Alias.py --- a/VirtualMailManager/Alias.py Wed Aug 20 02:22:43 2008 +0000 +++ b/VirtualMailManager/Alias.py Thu Aug 21 01:23:31 2008 +0000 @@ -13,20 +13,25 @@ __revision__ = 'rev '+'$Rev$'.split()[1] __date__ = '$Date$'.split()[1] -from Exceptions import VMMAliasException +from Exceptions import VMMAliasException as VMMAE from Domain import Domain import constants.ERROR as ERR +import VirtualMailManager as VMM class Alias: """Class to manage e-mail accounts.""" def __init__(self, dbh, address, destination=None): if address == destination: - raise VMMAliasException( - _(u'Address and destination are identical.'), + raise VMMAE(_(u"Address and destination are identical."), ERR.ALIAS_ADDR_DEST_IDENTICAL) self._dbh = dbh - self._addr = address - self._dest = destination + self._addr = VMM.VirtualMailManager.chkEmailAddress(address) + if destination is None: + self._dest = None + elif destination.count('@'): + self._dest = VMM.VirtualMailManager.chkEmailAddress(destination) + else: + self._dest = VMM.VirtualMailManager.chkLocalpart(destination) self._localpart = None self._gid = 0 self._isNew = False @@ -34,9 +39,8 @@ if not self._dest is None: self._exists() if self._isAccount(): - raise VMMAliasException( - _(u"There is already an account with address '%s'") % self._addr, - ERR.ACCOUNT_EXISTS) + raise VMMAE(_(u"There is already an account with address »%s«.") % + self._addr, ERR.ACCOUNT_EXISTS) def _exists(self): dbc = self._dbh.cursor() @@ -65,13 +69,12 @@ dom = Domain(self._dbh, d) self._gid = dom.getID() if self._gid == 0: - raise VMMAliasException(_(u"Domain '%s' doesn't exist.") % d, + raise VMMAE(_(u"The domain »%s« doesn't exist yet.") % d, ERR.NO_SUCH_DOMAIN) def save(self): if self._dest is None: - raise VMMAliasException( - _('No destination address for alias denoted.'), + raise VMMAE(_(u"No destination address for alias denoted."), ERR.ALIAS_MISSING_DEST) if self._isNew: dbc = self._dbh.cursor() @@ -80,8 +83,8 @@ self._dbh.commit() dbc.close() else: - raise VMMAliasException(_("Alias already exists."), - ERR.ALIAS_EXISTS) + raise VMMAE(_(u"The alias »%s« already exists.") % self._addr, + ERR.ALIAS_EXISTS) def getInfo(self): dbc = self._dbh.cursor() @@ -95,8 +98,8 @@ targets.append(destination[0]) return targets else: - raise VMMAliasException(_("Alias doesn't exists"), - ERR.NO_SUCH_ALIAS) + raise VMMAE(_(u"The alias »%s« doesn't exists.") % self._addr, + ERR.NO_SUCH_ALIAS) def delete(self): dbc = self._dbh.cursor() @@ -111,6 +114,6 @@ if rowcount > 0: self._dbh.commit() else: - raise VMMAliasException(_("Alias doesn't exists"), - ERR.NO_SUCH_ALIAS) + raise VMMAE(_(u"The alias »%s« doesn't exists.") % self._addr, + ERR.NO_SUCH_ALIAS)