summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorToufik Ben Jaa <tbe@odoo.com>2018-10-15 12:40:46 +0000
committerNicolas Martinelli <nim@odoo.com>2019-02-08 12:52:29 +0000
commit19b0c7e1c1c211c97b655ba6b66d064c770ee839 (patch)
treef794d084dba08de32357705c53b37a1408b6954b
parent0b61a7d135df075a43baff5f89b4287ad4a2d4a7 (diff)
[FIX] auth_signup: invalid value on field signup_valid for non superuser
- The field `signup_valid` was computed and stored using the `superuser` env, which causes issue since it means the value was computed for the wrong environment. Using a compute_sudo instead of manually calling `sudo()` fixes the issue. e.g: reading signup_valid using a regular user (non superuser) will always return False, while doing it as the superuser will return the correct value. closes odoo/odoo#30954
-rw-r--r--addons/auth_signup/models/res_partner.py4
1 files changed, 2 insertions, 2 deletions
diff --git a/addons/auth_signup/models/res_partner.py b/addons/auth_signup/models/res_partner.py
index 91cd8d5e3e8..99d0604de2b 100644
--- a/addons/auth_signup/models/res_partner.py
+++ b/addons/auth_signup/models/res_partner.py
@@ -28,14 +28,14 @@ class ResPartner(models.Model):
signup_token = fields.Char(copy=False, groups="base.group_erp_manager")
signup_type = fields.Char(string='Signup Token Type', copy=False, groups="base.group_erp_manager")
signup_expiration = fields.Datetime(copy=False, groups="base.group_erp_manager")
- signup_valid = fields.Boolean(compute='_compute_signup_valid', string='Signup Token is Valid')
+ signup_valid = fields.Boolean(compute='_compute_signup_valid', compute_sudo=True, string='Signup Token is Valid')
signup_url = fields.Char(compute='_compute_signup_url', string='Signup URL')
@api.multi
@api.depends('signup_token', 'signup_expiration')
def _compute_signup_valid(self):
dt = now()
- for partner in self.sudo():
+ for partner in self:
partner.signup_valid = bool(partner.signup_token) and \
(not partner.signup_expiration or dt <= partner.signup_expiration)