Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
d5eeef1
[9.0][MIG][auth_signup_verify_email] Migration. (#436)
yajo May 31, 2016
1d25e7e
[MIG][10] auth_signup_verify_email
sharkende Jan 27, 2017
07f4825
[MIG][11] auth_signup_verify_email
simahawk Jan 22, 2018
fbacb57
[FIX+REF] auth_signup_verify_email: Fix tests + Skip mail send in tes…
yajo Jan 26, 2018
a622e73
[FIX] auth_signup_verify_email: Improve signup error messages
zaoral Dec 4, 2018
78fb3fd
[MIG] auth_signup_verify_email: Migration to 12.0
Tardo Jun 4, 2019
aa79cce
Translated using Weblate (Portuguese (Brazil))
Sep 3, 2019
143705f
Translated using Weblate (Croatian)
badbole Nov 13, 2019
1865aee
[IMP] auth_signup_verify_email: Remove hack
Tardo Nov 21, 2019
17da922
[FIX] auth_signup_verify_email: make tests compatible with website
Feb 20, 2020
d3d59ac
[IMP] auth_signup_verify_email: black, isort, prettier
em230418 May 19, 2020
09a1604
[MIG] auth_signup_verify_email: Migration to 13.0
em230418 May 19, 2020
8ab1d14
Added translation using Weblate (Arabic)
RachidAlassir Jan 6, 2021
3e304a8
[IMP] auth_signup_verify_email: black, isort, prettier
em230418 Oct 6, 2021
eac2605
[MIG] auth_signup_verify_email: Migration to 14.0
em230418 Apr 29, 2021
886271a
[FIX] auth_signup_verify_email: Use real email address for tests
pedrobaeza Jun 12, 2022
1886a85
[MIG] auth_signup_verify_email: Migration to 15.0
em230418 Mar 30, 2022
bc60e50
[IMP] auth_signup_verify_email: pre-commit stuff
Nov 25, 2022
6351539
[MIG] auth_signup_verify_email: Migration to 16.0
Nov 25, 2022
f0af440
Translated using Weblate (Spanish)
Ivorra78 Aug 25, 2023
331c07b
[IMP] auth_signup_verify_email: pre-commit execution
augusto-weiss Dec 18, 2023
0a0e00a
[MIG] auth_signup_verify_email: Migration to 17.0
augusto-weiss Dec 18, 2023
41f74bb
Update translation files
weblate Aug 23, 2024
8b7ff3f
Translated using Weblate (Italian)
mymage Aug 26, 2024
49f2695
Added translation using Weblate (Finnish)
jarmokortetjarvi Sep 30, 2024
f566bbb
Translated using Weblate (Finnish)
jarmokortetjarvi Sep 30, 2024
19eaf1b
[MIG] auth_signup_verify_email: Migration to 18.0
jr2-adhoc Nov 14, 2024
00217b1
[IMP] auth_signup_verify_email: pre-commit auto fixes
bizzappdev Oct 15, 2025
d5a0a5f
[MIG] auth_signup_verify_email: Migration to 19.0
bizzappdev Dec 11, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
114 changes: 114 additions & 0 deletions auth_signup_verify_email/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
.. image:: https://odoo-community.org/readme-banner-image
:target: https://odoo-community.org/get-involved?utm_source=readme
:alt: Odoo Community Association

======================
Verify email at signup
======================

..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:e69236b981314d4a6da4bf08e0795674b28a85cf03188b91f32cf22b1e63b31b
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
:target: https://odoo-community.org/page/development-status
:alt: Beta
.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fserver--auth-lightgray.png?logo=github
:target: https://github.com/OCA/server-auth/tree/19.0/auth_signup_verify_email
:alt: OCA/server-auth
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/server-auth-19-0/server-auth-19-0-auth_signup_verify_email
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
:target: https://runboat.odoo-community.org/builds?repo=OCA/server-auth&target_branch=19.0
:alt: Try me on Runboat

|badge1| |badge2| |badge3| |badge4| |badge5|

This module extends the functionality of public sign up to force users
to provide a valid email address.

To achieve this, users are not required to provide a password at sign
up: they are asked for only at first login attempt.

**Table of contents**

.. contents::
:local:

Installation
============

- Install
`email_validator <https://pypi.org/project/email-validator/>`__ with
``pip install email_validator`` or equivalent.

Configuration
=============

To configure this module, you need to:

- `Properly configure your outgoing email
server(s) <https://www.odoo.com/forum/help-1/question/how-to-configure-email-gateway-282#answer_290>`__.
- Go to *Settings > General Settings -> General settings*, search for
the *Users* section and enable *Free sign up* in *Customer account*.

Usage
=====

To use this module, you need to:

- Log out.
- `Sign up </web/signup>`__ with a valid email.

Bug Tracker
===========

Bugs are tracked on `GitHub Issues <https://github.com/OCA/server-auth/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
`feedback <https://github.com/OCA/server-auth/issues/new?body=module:%20auth_signup_verify_email%0Aversion:%2019.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.

Do not contact contributors directly about support or help with technical issues.

Credits
=======

Authors
-------

* Antiun Ingeniería S.L.
* Tecnativa

Contributors
------------

- Rafael Blasco <rafaelbn@antiun.com>
- Jairo Llopis <yajo.sk8@gmail.com>
- Simone Orsi <simone.orsi@camptocamp.com>
- Alexandre Díaz <alexandre.diaz@tecnativa.com>
- Eugene Molotov <molotov@it-projects.info>

Maintainers
-----------

This module is maintained by the OCA.

.. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: https://odoo-community.org

OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.

This module is part of the `OCA/server-auth <https://github.com/OCA/server-auth/tree/19.0/auth_signup_verify_email>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
4 changes: 4 additions & 0 deletions auth_signup_verify_email/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Copyright 2015 Antiun Ingeniería, S.L.
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).

from . import controllers
15 changes: 15 additions & 0 deletions auth_signup_verify_email/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Copyright 2015 Antiun Ingeniería, S.L.
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
{
"name": "Verify email at signup",
"summary": "Force uninvited users to use a good email for signup",
"version": "19.0.1.0.0",
"category": "Authentication",
"website": "https://github.com/OCA/server-auth",
"author": "Antiun Ingeniería S.L., Tecnativa, Odoo Community Association (OCA)",
"license": "AGPL-3",
"depends": ["auth_signup"],
"external_dependencies": {"python": ["lxml", "email_validator"]},
"data": ["views/signup.xml"],
"installable": True,
}
4 changes: 4 additions & 0 deletions auth_signup_verify_email/controllers/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Copyright 2015 Antiun Ingeniería, S.L.
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).

from . import main
76 changes: 76 additions & 0 deletions auth_signup_verify_email/controllers/main.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
# Copyright 2015 Antiun Ingeniería, S.L.
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).

import logging

from email_validator import EmailSyntaxError, EmailUndeliverableError, validate_email

from odoo.http import request, route

from odoo.addons.auth_signup.controllers.main import AuthSignupHome

_logger = logging.getLogger(__name__)


class SignupVerifyEmail(AuthSignupHome):
@route()
def web_auth_signup(self, *args, **kw):
if request.params.get("login") and not request.params.get("password"):
return self.passwordless_signup()
return super().web_auth_signup(*args, **kw)

def passwordless_signup(self):
values = request.params
qcontext = self.get_auth_signup_qcontext()

# Check good format of e-mail
try:
validate_email(values.get("login", ""))
except EmailSyntaxError as error:
qcontext["error"] = getattr(
error,
"message",
self.env._("That does not seem to be an email address."),
)
return request.render("auth_signup.signup", qcontext)
except EmailUndeliverableError as error:
qcontext["error"] = str(error)
return request.render("auth_signup.signup", qcontext)
except Exception as error:
qcontext["error"] = str(error)
return request.render("auth_signup.signup", qcontext)
if not values.get("email"):
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"] = ""
sudo_users = request.env["res.users"].with_context(create_user=True).sudo()

try:
with request.env.cr.savepoint():
sudo_users.signup(values, qcontext.get("token"))
sudo_users.reset_password(values.get("login"))
except Exception as error:
# Duplicate key or wrong SMTP settings, probably
_logger.exception(error)
if (
request.env["res.users"]
.sudo()
.search([("login", "=", qcontext.get("login"))])
):
qcontext["error"] = self.env._(
"Another user is already registered using this email address."
)
else:
# Agnostic message for security
qcontext["error"] = self.env._(
"Something went wrong, please try again later or contact us."
)
return request.render("auth_signup.signup", qcontext)

qcontext["message"] = self.env._("Check your email to activate your account!")
return request.render("auth_signup.reset_password", qcontext)
46 changes: 46 additions & 0 deletions auth_signup_verify_email/i18n/ar.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * auth_signup_verify_email
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 13.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2021-01-06 13:44+0000\n"
"Last-Translator: Rachid Al Assir <rachidalassir@gmail.com>\n"
"Language-Team: none\n"
"Language: ar\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
"&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n"
"X-Generator: Weblate 4.3.2\n"

#. module: auth_signup_verify_email
#. odoo-python
#: code:addons/auth_signup_verify_email/controllers/main.py:0
#, python-format
msgid "Another user is already registered using this email address."
msgstr "هنالك مستخدم أخر مسجل بهذا البريد الإلكتروني."

#. module: auth_signup_verify_email
#. odoo-python
#: code:addons/auth_signup_verify_email/controllers/main.py:0
#, python-format
msgid "Check your email to activate your account!"
msgstr "تحقق من بريدك الإلكتروني لتفعيل حسابك!"

#. module: auth_signup_verify_email
#. odoo-python
#: code:addons/auth_signup_verify_email/controllers/main.py:0
#, python-format
msgid "Something went wrong, please try again later or contact us."
msgstr "حدث خطأ ما، يرجى المحاولة مرة أخرى لاحقًا أو الاتصال بنا."

#. module: auth_signup_verify_email
#. odoo-python
#: code:addons/auth_signup_verify_email/controllers/main.py:0
#, python-format
msgid "That does not seem to be an email address."
msgstr "لا يبدو أن هذا عنوان بريد إلكتروني."
38 changes: 38 additions & 0 deletions auth_signup_verify_email/i18n/auth_signup_verify_email.pot
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * auth_signup_verify_email
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0\n"
"Report-Msgid-Bugs-To: \n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"

#. module: auth_signup_verify_email
#. odoo-python
#: code:addons/auth_signup_verify_email/controllers/main.py:0
msgid "Another user is already registered using this email address."
msgstr ""

#. module: auth_signup_verify_email
#. odoo-python
#: code:addons/auth_signup_verify_email/controllers/main.py:0
msgid "Check your email to activate your account!"
msgstr ""

#. module: auth_signup_verify_email
#. odoo-python
#: code:addons/auth_signup_verify_email/controllers/main.py:0
msgid "Something went wrong, please try again later or contact us."
msgstr ""

#. module: auth_signup_verify_email
#. odoo-python
#: code:addons/auth_signup_verify_email/controllers/main.py:0
msgid "That does not seem to be an email address."
msgstr ""
49 changes: 49 additions & 0 deletions auth_signup_verify_email/i18n/de.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * auth_signup_verify_email
#
# Translators:
# Rudolf Schnapka <rs@techno-flex.de>, 2016
msgid ""
msgstr ""
"Project-Id-Version: server-tools (9.0)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-06-09 12:31+0000\n"
"PO-Revision-Date: 2016-05-31 14:47+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>\n"
"Language-Team: German (http://www.transifex.com/oca/OCA-server-tools-9-0/"
"language/de/)\n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. module: auth_signup_verify_email
#. odoo-python
#: code:addons/auth_signup_verify_email/controllers/main.py:0
#, python-format
msgid "Another user is already registered using this email address."
msgstr ""

#. module: auth_signup_verify_email
#. odoo-python
#: code:addons/auth_signup_verify_email/controllers/main.py:0
#, python-format
msgid "Check your email to activate your account!"
msgstr "Prüfen Sie Ihre Email, um Ihr Konto zu aktivieren."

#. module: auth_signup_verify_email
#. odoo-python
#: code:addons/auth_signup_verify_email/controllers/main.py:0
#, python-format
msgid "Something went wrong, please try again later or contact us."
msgstr ""
"Etwas ist schief gelaufen, bitte später nochmal versuchen oden an uns wenden."

#. module: auth_signup_verify_email
#. odoo-python
#: code:addons/auth_signup_verify_email/controllers/main.py:0
#, python-format
msgid "That does not seem to be an email address."
msgstr "Das schein keine Email-Adresse zu sein."
Loading