From b039d37ffa50ea0c264637cc83b79a4e0bf85d63 Mon Sep 17 00:00:00 2001 From: Stefan Rijnhart Date: Wed, 29 Nov 2017 18:34:40 +0100 Subject: [PATCH] [FIX] Underscore is a special character --- password_security/__manifest__.py | 2 +- password_security/models/res_users.py | 2 +- password_security/tests/test_res_users.py | 5 +++++ 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/password_security/__manifest__.py b/password_security/__manifest__.py index 871e79d58..689d0ab1b 100644 --- a/password_security/__manifest__.py +++ b/password_security/__manifest__.py @@ -5,7 +5,7 @@ 'name': 'Password Security', "summary": "Allow admin to set password security requirements.", - 'version': '10.0.1.1.0', + 'version': '10.0.1.1.1', 'author': "LasLabs, Odoo Community Association (OCA)", 'category': 'Base', 'depends': [ diff --git a/password_security/models/res_users.py b/password_security/models/res_users.py index e3c1902e2..c9e61af1c 100644 --- a/password_security/models/res_users.py +++ b/password_security/models/res_users.py @@ -84,7 +84,7 @@ class ResUsers(models.Model): if company_id.password_numeric: password_regex.append(r'(?=.*?\d)') if company_id.password_special: - password_regex.append(r'(?=.*?\W)') + password_regex.append(r'(?=.*?[\W_])') password_regex.append('.{%d,}$' % company_id.password_length) if not re.search(''.join(password_regex), password): raise PassError(self.password_match_message()) diff --git a/password_security/tests/test_res_users.py b/password_security/tests/test_res_users.py index 68b610d1e..ea1d852eb 100644 --- a/password_security/tests/test_res_users.py +++ b/password_security/tests/test_res_users.py @@ -159,3 +159,8 @@ class TestResUsers(TransactionCase): self.assertEqual( True, rec_id._validate_pass_reset(), ) + + def test_underscore_is_special_character(self): + self.assertTrue(self.main_comp.password_special) + rec_id = self._new_record() + rec_id._check_password('asdQWE12345_3')