From ab8c0e4c6f70a990eb5bfcbfed548f63c625470f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Wed, 23 Aug 2023 18:27:01 +0200 Subject: [PATCH] [REF] mail, various: remove now dead configuration parameters PURPOSE Allow alias domains to be multiple, notably to be used in a multi company environment where each company has its own alias domain. SPECIFICATIONS Now that alias domains are used in Odoo codebase there is no usage anymore for the old config parameters. So long and thanks for all the fish ! Task-36879 (Mail: Support Multi Domains Aliases) Part-of: odoo/odoo#76734 --- addons/mail/__manifest__.py | 1 - addons/mail/data/ir_config_parameter.xml | 9 ---- addons/mail/data/ir_config_parameter_data.xml | 20 ++------- addons/mail/models/ir_config_parameter.py | 3 -- addons/mail/tests/common.py | 4 -- addons/test_mail/tests/test_mail_alias.py | 43 ------------------- addons/test_mail/tests/test_mail_message.py | 1 - odoo/addons/base/tests/test_ir_mail_server.py | 4 +- 8 files changed, 4 insertions(+), 81 deletions(-) delete mode 100644 addons/mail/data/ir_config_parameter.xml diff --git a/addons/mail/__manifest__.py b/addons/mail/__manifest__.py index f87807e5ddd..09e9b82a92a 100644 --- a/addons/mail/__manifest__.py +++ b/addons/mail/__manifest__.py @@ -99,7 +99,6 @@ For more specific needs, you may also assign custom-defined actions 'data/mail_activity_data.xml', 'data/security_notifications_templates.xml', 'data/ir_cron_data.xml', - 'data/ir_config_parameter.xml', 'security/mail_security.xml', 'security/ir.model.access.csv', 'views/discuss_public_templates.xml', diff --git a/addons/mail/data/ir_config_parameter.xml b/addons/mail/data/ir_config_parameter.xml deleted file mode 100644 index f8523283883..00000000000 --- a/addons/mail/data/ir_config_parameter.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - mail.activity.gc.delete_overdue_years - 3 - - - diff --git a/addons/mail/data/ir_config_parameter_data.xml b/addons/mail/data/ir_config_parameter_data.xml index 69b5800e8d4..a523ab92b83 100644 --- a/addons/mail/data/ir_config_parameter_data.xml +++ b/addons/mail/data/ir_config_parameter_data.xml @@ -1,23 +1,9 @@ - - - mail.catchall.alias - catchall + + mail.activity.gc.delete_overdue_years + 3 - - - - mail.bounce.alias - bounce - - - - - mail.default.from - notifications - - diff --git a/addons/mail/models/ir_config_parameter.py b/addons/mail/models/ir_config_parameter.py index 9112fd6ed27..a94f2549b22 100644 --- a/addons/mail/models/ir_config_parameter.py +++ b/addons/mail/models/ir_config_parameter.py @@ -20,9 +20,6 @@ class IrConfigParameter(models.Model): # remove existing users, including inactive template user # admin will regain the right via implied_ids on group_system group_user._remove_group(group_mail_template_editor) - # sanitize, normalize; note that False = unlink ICP - elif key in {'mail.bounce.alias', 'mail.catchall.alias'} and value: - value = self.env['mail.alias']._sanitize_alias_name(value) # sanitize and normalize allowed catchall domains elif key == 'mail.catchall.domain.allowed' and value: value = self.env['mail.alias']._sanitize_allowed_domains(value) diff --git a/addons/mail/tests/common.py b/addons/mail/tests/common.py index 0149d0cfec2..fc8c4b7cc32 100644 --- a/addons/mail/tests/common.py +++ b/addons/mail/tests/common.py @@ -101,10 +101,6 @@ class MockEmail(common.BaseCase, MockSmtplibCase): cls.alias_bounce = 'bounce.test' cls.default_from = 'notifications.test' cls.default_from_filter = False - cls.env['ir.config_parameter'].set_param('mail.bounce.alias', cls.alias_bounce) - cls.env['ir.config_parameter'].set_param('mail.catchall.domain', cls.alias_domain) - cls.env['ir.config_parameter'].set_param('mail.catchall.alias', cls.alias_catchall) - cls.env['ir.config_parameter'].set_param('mail.default.from', cls.default_from) cls.env['ir.config_parameter'].set_param('mail.default.from_filter', cls.default_from_filter) # ensure global alias domain for tests: to ease tests, search or create diff --git a/addons/test_mail/tests/test_mail_alias.py b/addons/test_mail/tests/test_mail_alias.py index fe9ffeeb463..af639075c6a 100644 --- a/addons/test_mail/tests/test_mail_alias.py +++ b/addons/test_mail/tests/test_mail_alias.py @@ -46,49 +46,6 @@ class TestMailAlias(TestMailAliasCommon): self.env['ir.config_parameter'].set_param('mail.catchall.domain.allowed', value) self.assertEqual(self.env['ir.config_parameter'].get_param('mail.catchall.domain.allowed'), expected) - @users('admin') - @mute_logger('odoo.models.unlink') - def test_alias_domain_parameters(self): - """ Check the validation of ``mail.bounce.alias`` and ``mail.catchall.alias`` - parameters. """ - ICP = self.env['ir.config_parameter'] - # sanitization - for (bounce_value, catchall_value), (expected_bounce, expected_catchall) in zip( - [ - ('bounce+b4r=*R3wl_#_-$€{}[]()~|\\/!?&%^\'"`~', 'catchall+b4r=*R3wl_#_-$€{}[]()~|\\/!?&%^\'"`~'), - ('bounce+😊', 'catchall+😊'), - ('Bouncâïde 😊', 'Catchôïee 😊'), - ('ぁ', 'ぁぁ'), - ], - [ - ('bounce+b4r=*r3wl_#_-$-{}-~|-/!?&%^\'-`~', 'catchall+b4r=*r3wl_#_-$-{}-~|-/!?&%^\'-`~'), - ('bounce+-', 'catchall+-'), - ('bouncaide-', 'catchoiee-'), - ('?', '??'), - ] - ): - with self.subTest(bounce_value=bounce_value): - ICP.set_param('mail.bounce.alias', bounce_value) - self.assertEqual(ICP.get_param('mail.bounce.alias'), expected_bounce) - with self.subTest(catchall_value=catchall_value): - ICP.set_param('mail.catchall.alias', catchall_value) - self.assertEqual(ICP.get_param('mail.catchall.alias'), expected_catchall) - - # falsy values - for config_value in [False, None, '', ' ']: - with self.subTest(config_value=config_value): - ICP.set_param('mail.bounce.alias', config_value) - self.assertFalse(ICP.get_param('mail.bounce.alias')) - ICP.set_param('mail.catchall.alias', config_value) - self.assertFalse(ICP.get_param('mail.catchall.alias')) - - # check successive param set, should not raise for unicity against itself - for _ in range(2): - ICP.set_param('mail.bounce.alias', 'bounce+double.test') - ICP.set_param('mail.catchall.alias', 'catchall+double.test') - self.assertEqual(ICP.get_param('mail.bounce.alias'), 'bounce+double.test') - self.assertEqual(ICP.get_param('mail.catchall.alias'), 'catchall+double.test') - @users('erp_manager') def test_alias_domain_company_check(self): """ Check constraint trying to avoid ill-defined company setup aka diff --git a/addons/test_mail/tests/test_mail_message.py b/addons/test_mail/tests/test_mail_message.py index 126bb9fd909..f54dbff8557 100644 --- a/addons/test_mail/tests/test_mail_message.py +++ b/addons/test_mail/tests/test_mail_message.py @@ -460,7 +460,6 @@ class TestMessageAccess(MailCommon): def test_mail_message_access_create_reply(self): # TDE FIXME: should it really work ? not sure - catchall makes crash (aka, post will crash also) - self.env['ir.config_parameter'].set_param('mail.catchall.domain', False) self.message.write({'partner_ids': [(4, self.user_employee.partner_id.id)]}) self.env['mail.message'].with_user(self.user_employee).create({'model': 'discuss.channel', 'res_id': self.private_group.id, 'body': 'Test', 'parent_id': self.message.id}) diff --git a/odoo/addons/base/tests/test_ir_mail_server.py b/odoo/addons/base/tests/test_ir_mail_server.py index 827b8584256..cfc4d986c7f 100644 --- a/odoo/addons/base/tests/test_ir_mail_server.py +++ b/odoo/addons/base/tests/test_ir_mail_server.py @@ -51,9 +51,7 @@ class TestIrMailServer(TransactionCase, MockSmtplibCase): @classmethod def setUpClass(cls): super().setUpClass() - # TEMPORARY - for icp in {'mail.default.from', 'mail.catchall.alias', 'mail.bounce.alias', 'mail.catchall.domain', 'mail.default.from_filter'}: - cls.env['ir.config_parameter'].sudo().set_param(icp, False) + cls.env['ir.config_parameter'].sudo().set_param('mail.default.from_filter', False) cls._init_mail_servers() cls.default_bounce_address = 'CACA' cls.default_from_address = 'PROUT'