# HG changeset patch # User souliane # Date 1457364041 -3600 # Node ID 8a5b178ff28b8514a4db7af275612adff20c8a2e # Parent b91c8637c656c1c0a559b27c0f80ebd026b55e31 plugin misc_account: fixes handling of deprecater parameter "admin_email" diff -r b91c8637c656 -r 8a5b178ff28b src/plugins/plugin_misc_account.py --- a/src/plugins/plugin_misc_account.py Mon Mar 07 15:48:11 2016 +0100 +++ b/src/plugins/plugin_misc_account.py Mon Mar 07 16:20:41 2016 +0100 @@ -147,6 +147,7 @@ self._prosody_path = dirname(paths[0]) log.info(_(u'Prosody path found: %s') % (self._prosody_path,)) + self.fixEmailAdmins() self._sessions = Sessions() self.__account_cb_id = host.registerCallback(self._accountDialogCb, with_data=True) @@ -161,6 +162,26 @@ self.__delete_account_id = host.registerCallback(self.__deleteAccountCb, with_data=True) + + # FIXME: remove this after some time, when the deprecated parameter is really abandoned + def fixEmailAdmins(self): + """Handle deprecated config option "admin_email" to fix the admin emails list""" + admin_email = self.getConfig('admin_email') + if not admin_email: + return + log.warning(u"admin_email parameter is deprecated, please use email_admins_list instead") + param_name = "email_admins_list" + try: + section = "" + value = self.host.memory.getConfig(section, param_name, Exception) + except (ConfigParser.NoOptionError, ConfigParser.NoSectionError): + section = CONFIG_SECTION + value = self.host.memory.getConfig(section, param_name, default_conf[param_name]) + + value = set(value) + value.add(admin_email) + self.host.memory.config.set(section, param_name, ",".join(value)) + def getConfig(self, name): if name.startswith("email_"): # XXX: email_ parameters were first in [plugin account] section @@ -258,14 +279,8 @@ email_auth = C.bool(self.getConfig("email_auth")) domain = self.getConfig('new_account_domain') - # admin + # email to the administrator admins_emails = self.getConfig('email_admins_list') - admin_email = self.getConfig('admin_email') - if admin_email: - log.warning(u"admin_email parameter is deprecated, please use email_admins_list instead") - admins_emails.append(admin_email) - - # email to the administrator if not admins_emails: log.warning(u"No known admin email, we can't send email to administrator(s).\nPlease fill email_admins_list parameter") d_admin = defer.fail(exceptions.DataError("no admin email"))