@@ -46,7 +46,7 @@ def create(self, vals):
46
46
return super (ResUsers , self ).create (vals )
47
47
48
48
def write (self , vals ):
49
- if vals .get ("password" ):
49
+ if vals .get ("password" ) and self . env . user . company_id . password_policy_enabled :
50
50
self ._check_password (vals ["password" ])
51
51
vals ["password_write_date" ] = fields .Datetime .now ()
52
52
return super (ResUsers , self ).write (vals )
@@ -55,16 +55,17 @@ def write(self, vals):
55
55
def get_password_policy (self ):
56
56
data = super (ResUsers , self ).get_password_policy ()
57
57
company_id = self .env .user .company_id
58
- data .update (
59
- {
60
- "password_lower" : company_id .password_lower ,
61
- "password_upper" : company_id .password_upper ,
62
- "password_numeric" : company_id .password_numeric ,
63
- "password_special" : company_id .password_special ,
64
- "password_length" : company_id .password_length ,
65
- "password_estimate" : company_id .password_estimate ,
66
- }
67
- )
58
+ if company_id .password_policy_enabled :
59
+ data .update (
60
+ {
61
+ "password_lower" : company_id .password_lower ,
62
+ "password_upper" : company_id .password_upper ,
63
+ "password_numeric" : company_id .password_numeric ,
64
+ "password_special" : company_id .password_special ,
65
+ "password_length" : company_id .password_length ,
66
+ "password_estimate" : company_id .password_estimate ,
67
+ }
68
+ )
68
69
return data
69
70
70
71
def _check_password_policy (self , passwords ):
@@ -124,20 +125,21 @@ def _check_password_rules(self, password):
124
125
if not password :
125
126
return True
126
127
company_id = self .company_id
127
- password_regex = [
128
- "^" ,
129
- "(?=.*?[a-z]){" + str (company_id .password_lower ) + ",}" ,
130
- "(?=.*?[A-Z]){" + str (company_id .password_upper ) + ",}" ,
131
- "(?=.*?\\ d){" + str (company_id .password_numeric ) + ",}" ,
132
- r"(?=.*?[\W_]){" + str (company_id .password_special ) + ",}" ,
133
- ".{%d,}$" % int (company_id .password_length ),
134
- ]
135
- if not re .search ("" .join (password_regex ), password ):
136
- raise ValidationError (self .password_match_message ())
137
-
138
- estimation = self .get_estimation (password )
139
- if estimation ["score" ] < company_id .password_estimate :
140
- raise UserError (estimation ["feedback" ]["warning" ])
128
+ if company_id .password_policy_enabled :
129
+ password_regex = [
130
+ "^" ,
131
+ "(?=.*?[a-z]){" + str (company_id .password_lower ) + ",}" ,
132
+ "(?=.*?[A-Z]){" + str (company_id .password_upper ) + ",}" ,
133
+ "(?=.*?\\ d){" + str (company_id .password_numeric ) + ",}" ,
134
+ r"(?=.*?[\W_]){" + str (company_id .password_special ) + ",}" ,
135
+ ".{%d,}$" % int (company_id .password_length ),
136
+ ]
137
+ if not re .search ("" .join (password_regex ), password ):
138
+ raise ValidationError (self .password_match_message ())
139
+
140
+ estimation = self .get_estimation (password )
141
+ if estimation ["score" ] < company_id .password_estimate :
142
+ raise UserError (estimation ["feedback" ]["warning" ])
141
143
142
144
return True
143
145
0 commit comments