From 15f387fbe5f37d4643d8bc3983748701abe8f569 Mon Sep 17 00:00:00 2001 From: Toufik Ben Jaa Date: Mon, 15 Oct 2018 14:40:46 +0200 Subject: [PATCH] [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. --- addons/auth_signup/models/res_partner.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/auth_signup/models/res_partner.py b/addons/auth_signup/models/res_partner.py index c0da1d85f83..8b7779a2403 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)