From 8ed0c6f54f946b3db1ab9360d6dd25b923c3af8d Mon Sep 17 00:00:00 2001 From: Fabio Barbero <faba@odoo.com> Date: Thu, 24 Feb 2022 14:49:44 +0000 Subject: [PATCH] [FIX] mail: add check valid email address Purpose ======= The method find_or_create of res.partner overwritten in mail does not take into account the parameter assert_valid_email. This commit adds a simple check and test. Task-2799577 closes odoo/odoo#86943 X-original-commit: 7a07b365370d03e963aa7f7d9d19df7ee33e8a1c Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com> --- addons/mail/i18n/mail.pot | 8 ++++++++ addons/mail/models/res_partner.py | 2 ++ addons/mail/tests/test_res_partner.py | 3 +++ 3 files changed, 13 insertions(+) diff --git a/addons/mail/i18n/mail.pot b/addons/mail/i18n/mail.pot index f76a19caec90..6559226b383f 100644 --- a/addons/mail/i18n/mail.pot +++ b/addons/mail/i18n/mail.pot @@ -41,6 +41,14 @@ msgstr "" msgid "%(activity_name)s: %(summary)s assigned to you" msgstr "" +#. module: mail +#: code:addons/mail/models/res_partner.py:0 +#, python-format +msgid "" +"%(email)s is not recognized as a valid email. This is required to create a " +"new customer." +msgstr "" + #. module: mail #: code:addons/mail/wizard/mail_wizard_invite.py:0 #, python-format diff --git a/addons/mail/models/res_partner.py b/addons/mail/models/res_partner.py index 88eb7184bb6e..e257def67022 100644 --- a/addons/mail/models/res_partner.py +++ b/addons/mail/models/res_partner.py @@ -83,6 +83,8 @@ class Partner(models.Model): raise ValueError(_('An email is required for find_or_create to work')) parsed_name, parsed_email = self._parse_partner_name(email) + if not parsed_email and assert_valid_email: + raise ValueError(_('%(email)s is not recognized as a valid email. This is required to create a new customer.')) if parsed_email: email_normalized = tools.email_normalize(parsed_email) if email_normalized: diff --git a/addons/mail/tests/test_res_partner.py b/addons/mail/tests/test_res_partner.py index c2fb68464c29..4a2f55765343 100644 --- a/addons/mail/tests/test_res_partner.py +++ b/addons/mail/tests/test_res_partner.py @@ -95,6 +95,9 @@ class TestPartner(MailCommon): check_partner=new6, should_create=True ) + with self.assertRaises(ValueError): + self.env['res.partner'].find_or_create("Raoul chirurgiens-dentistes.fr", assert_valid_email=True) + def test_res_partner_log_portal_group(self): Users = self.env['res.users'] subtype_note = self.env.ref('mail.mt_note') -- GitLab