[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.
This commit is contained in:
Toufik Ben Jaa
2018-10-17 14:54:12 +02:00
parent e9ae419fca
commit 15f387fbe5
+2 -2
View File
@@ -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)