From 531858c491aaa0369474ea531b8d0d50d839a509 Mon Sep 17 00:00:00 2001 From: Goncalo Brito Date: Fri, 28 Feb 2025 12:16:46 +0100 Subject: [PATCH] [REF] auth_signup_verify_email: ensure right values are taken This commit enables the extension of the values from other modules Fix #767 --- auth_signup_verify_email/__init__.py | 1 + auth_signup_verify_email/controllers/main.py | 6 +----- auth_signup_verify_email/models/__init__.py | 1 + auth_signup_verify_email/models/res_users.py | 20 ++++++++++++++++++++ 4 files changed, 23 insertions(+), 5 deletions(-) create mode 100644 auth_signup_verify_email/models/__init__.py create mode 100644 auth_signup_verify_email/models/res_users.py diff --git a/auth_signup_verify_email/__init__.py b/auth_signup_verify_email/__init__.py index 54d1454ece..7f76725ab2 100644 --- a/auth_signup_verify_email/__init__.py +++ b/auth_signup_verify_email/__init__.py @@ -2,3 +2,4 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). from . import controllers +from . import models diff --git a/auth_signup_verify_email/controllers/main.py b/auth_signup_verify_email/controllers/main.py index 3c1564b5dc..8a8fc9a629 100644 --- a/auth_signup_verify_email/controllers/main.py +++ b/auth_signup_verify_email/controllers/main.py @@ -44,11 +44,7 @@ def passwordless_signup(self): values["email"] = values.get("login") # remove values that could raise "Invalid field '*' on model 'res.users'" - values.pop("redirect", "") - values.pop("token", "") - - # Remove password - values["password"] = "" + values = request.env["res.users"]._auth_signup_prepare_values(values) sudo_users = request.env["res.users"].with_context(create_user=True).sudo() try: diff --git a/auth_signup_verify_email/models/__init__.py b/auth_signup_verify_email/models/__init__.py new file mode 100644 index 0000000000..8835165330 --- /dev/null +++ b/auth_signup_verify_email/models/__init__.py @@ -0,0 +1 @@ +from . import res_users diff --git a/auth_signup_verify_email/models/res_users.py b/auth_signup_verify_email/models/res_users.py new file mode 100644 index 0000000000..c057065d26 --- /dev/null +++ b/auth_signup_verify_email/models/res_users.py @@ -0,0 +1,20 @@ +# Copyright 2025 - Bigorna +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from odoo import api, models + + +class ResUsers(models.Model): + _inherit = "res.users" + + @api.model + def _auth_signup_required_fields(self): + return ["name", "login", "email"] + + @api.model + def _auth_signup_prepare_values(self, values): + return { + field: values.get(field) + for field in self._auth_signup_required_fields() + if field in values + }