Changeset View
Changeset View
Standalone View
Standalone View
pykolab/plugins/recipientpolicy/__init__.py
Show First 20 Lines • Show All 69 Lines • ▼ Show 20 Lines | def set_primary_mail(self, *args, **kw): | ||||
user_attrs['preferredlanguage'] = default_locale | user_attrs['preferredlanguage'] = default_locale | ||||
try: | try: | ||||
mail = kw['primary_mail'] % user_attrs | mail = kw['primary_mail'] % user_attrs | ||||
mail = utils.translate(mail, user_attrs['preferredlanguage']) | mail = utils.translate(mail, user_attrs['preferredlanguage']) | ||||
mail = mail.lower() | mail = mail.lower() | ||||
return mail | return mail | ||||
except KeyError, e: | except KeyError: | ||||
log.warning(_("Attribute substitution for 'mail' failed in Recipient Policy")) | log.warning(_("Attribute substitution for 'mail' failed in Recipient Policy")) | ||||
if user_attrs.has_key('mail'): | if user_attrs.has_key('mail'): | ||||
return user_attrs['mail'] | return user_attrs['mail'] | ||||
else: | else: | ||||
return None | return None | ||||
def set_secondary_mail(self, *args, **kw): | def set_secondary_mail(self, *args, **kw): | ||||
""" | """ | ||||
Show All 20 Lines | def set_secondary_mail(self, *args, **kw): | ||||
default_locale = conf.get(user_attrs['domain'], 'default_locale') | default_locale = conf.get(user_attrs['domain'], 'default_locale') | ||||
if default_locale == None: | if default_locale == None: | ||||
default_locale = 'en_US' | default_locale = 'en_US' | ||||
user_attrs['preferredlanguage'] = default_locale | user_attrs['preferredlanguage'] = default_locale | ||||
try: | try: | ||||
exec("alternative_mail_routines = %s" % kw['secondary_mail']) | exec("alternative_mail_routines = %s" % kw['secondary_mail']) | ||||
except Exception, e: | except Exception: | ||||
log.error(_("Could not parse the alternative mail routines")) | log.error(_("Could not parse the alternative mail routines")) | ||||
alternative_mail = [] | alternative_mail = [] | ||||
log.debug(_("Alternative mail routines: %r") % (alternative_mail_routines), level=8) | log.debug(_("Alternative mail routines: %r") % (alternative_mail_routines), level=8) | ||||
_domains = [ kw['primary_domain'] ] + kw['secondary_domains'] | _domains = [ kw['primary_domain'] ] + kw['secondary_domains'] | ||||
for attr in [ 'givenname', 'sn', 'surname' ]: | for attr in [ 'givenname', 'sn', 'surname' ]: | ||||
try: | try: | ||||
user_attrs[attr] = utils.translate(user_attrs[attr], user_attrs['preferredlanguage']) | user_attrs[attr] = utils.translate(user_attrs[attr], user_attrs['preferredlanguage']) | ||||
except Exception, errmsg: | except Exception: | ||||
log.error(_("An error occurred in composing the secondary mail attribute for entry %r") % (user_attrs['id'])) | log.error(_("An error occurred in composing the secondary mail attribute for entry %r") % (user_attrs['id'])) | ||||
if conf.debuglevel > 8: | if conf.debuglevel > 8: | ||||
import traceback | import traceback | ||||
traceback.print_exc() | traceback.print_exc() | ||||
return [] | return [] | ||||
for number in alternative_mail_routines.keys(): | for number in alternative_mail_routines.keys(): | ||||
for routine in alternative_mail_routines[number].keys(): | for routine in alternative_mail_routines[number].keys(): | ||||
try: | try: | ||||
exec("retval = '%s'.%s" % (routine,alternative_mail_routines[number][routine] % user_attrs)) | exec("retval = '%s'.%s" % (routine,alternative_mail_routines[number][routine] % user_attrs)) | ||||
log.debug(_("Appending additional mail address: %s") % (retval), level=8) | log.debug(_("Appending additional mail address: %s") % (retval), level=8) | ||||
alternative_mail.append(retval) | alternative_mail.append(retval) | ||||
except Exception, errmsg: | except Exception as errmsg: | ||||
log.error(_("Policy for secondary email address failed: %r") % (errmsg)) | log.error(_("Policy for secondary email address failed: %r") % (errmsg)) | ||||
if conf.debuglevel > 8: | if conf.debuglevel > 8: | ||||
import traceback | import traceback | ||||
traceback.print_exc() | traceback.print_exc() | ||||
return [] | return [] | ||||
for _domain in kw['secondary_domains']: | for _domain in kw['secondary_domains']: | ||||
user_attrs['domain'] = _domain | user_attrs['domain'] = _domain | ||||
try: | try: | ||||
exec("retval = '%s'.%s" % (routine,alternative_mail_routines[number][routine] % user_attrs)) | exec("retval = '%s'.%s" % (routine,alternative_mail_routines[number][routine] % user_attrs)) | ||||
log.debug(_("Appending additional mail address: %s") % (retval), level=8) | log.debug(_("Appending additional mail address: %s") % (retval), level=8) | ||||
alternative_mail.append(retval) | alternative_mail.append(retval) | ||||
except KeyError, e: | except KeyError: | ||||
log.warning(_("Attribute substitution for 'alternative_mail' failed in Recipient Policy")) | log.warning(_("Attribute substitution for 'alternative_mail' failed in Recipient Policy")) | ||||
alternative_mail = utils.normalize(alternative_mail) | alternative_mail = utils.normalize(alternative_mail) | ||||
alternative_mail = list(set(alternative_mail)) | alternative_mail = list(set(alternative_mail)) | ||||
return alternative_mail | return alternative_mail |