Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[17.0][MIG] auth_signup_verify_email #592

Closed
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
d285e4a
[9.0][MIG][auth_signup_verify_email] Migration. (#436)
yajo May 31, 2016
7efb3d4
[MIG][10] auth_signup_verify_email
sharkende Jan 27, 2017
ace06aa
OCA Transbot updated translations from Transifex
oca-transbot Jun 12, 2016
4b3fab6
[MIG][11] auth_signup_verify_email
simahawk Jan 22, 2018
15e18e4
[FIX+REF] auth_signup_verify_email: Fix tests + Skip mail send in tes…
yajo Jan 26, 2018
62c9213
[FIX] auth_signup_verify_email: Improve signup error messages
zaoral Dec 4, 2018
749bfec
[MIG] auth_signup_verify_email: Migration to 12.0
Tardo Jun 4, 2019
fc9356f
Translated using Weblate (Portuguese (Brazil))
Sep 3, 2019
c086797
Translated using Weblate (Croatian)
badbole Nov 13, 2019
7c944e0
[IMP] auth_signup_verify_email: Remove hack
Tardo Nov 21, 2019
943a337
[FIX] auth_signup_verify_email: make tests compatible with website
Feb 20, 2020
6d5ea8c
[IMP] auth_signup_verify_email: black, isort, prettier
em230418 May 19, 2020
a44a545
[MIG] auth_signup_verify_email: Migration to 13.0
em230418 May 19, 2020
858cf44
Added translation using Weblate (Arabic)
RachidAlassir Jan 6, 2021
7c727ab
Translated using Weblate (Arabic)
RachidAlassir Jan 6, 2021
36b2381
[IMP] auth_signup_verify_email: black, isort, prettier
em230418 Oct 6, 2021
d6b79ac
[MIG] auth_signup_verify_email: Migration to 14.0
em230418 Apr 29, 2021
8b8fd44
[UPD] Update auth_signup_verify_email.pot
oca-travis Jan 21, 2022
1576486
[UPD] README.rst
OCA-git-bot Jan 21, 2022
86a5775
[FIX] auth_signup_verify_email: Use real email address for tests
pedrobaeza Jun 12, 2022
31f2ba2
[MIG] auth_signup_verify_email: Migration to 15.0
em230418 Mar 30, 2022
37f05ca
[UPD] Update auth_signup_verify_email.pot
Nov 3, 2022
b5746bc
[UPD] README.rst
OCA-git-bot Nov 3, 2022
74c2b95
[IMP] auth_signup_verify_email: pre-commit stuff
bruno-zanotti Nov 25, 2022
f72d433
[MIG] auth_signup_verify_email: Migration to 16.0
bruno-zanotti Nov 25, 2022
e3e667e
[UPD] Update auth_signup_verify_email.pot
Jul 2, 2023
8402432
[UPD] README.rst
OCA-git-bot Jul 2, 2023
0921817
Update translation files
weblate Jul 2, 2023
eb89d2d
Translated using Weblate (Spanish)
Ivorra78 Aug 25, 2023
2a12589
[UPD] README.rst
OCA-git-bot Sep 3, 2023
3ee0d2c
[IMP] auth_signup_verify_email: pre-commit execution
augusto-weiss Dec 18, 2023
59a0704
[MIG] auth_signup_verify_email: Migration to 17.0
augusto-weiss Dec 18, 2023
edf862b
Merge branch '17.0' into 17.0-mig-auth_signup_verify_email
augusto-weiss Apr 3, 2024
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 @@
======================
Verify email at signup
======================

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

.. |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/licence-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/17.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-17-0/server-auth-17-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=17.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.
When sign up the module send an invitation email ("reset password" mail template)
to the new user with a unique access link which allows the new user to create the password.

To achieve this, users are not required to provide a password at sign
up (the module hides the fields "password" and "confirm password"):
they are asked for only at first login attempt.
The password would be set for the very first time when user clicks on the unique access link recieved by email.

**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:%2017.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 <[email protected]>
- Jairo Llopis <[email protected]>
- Simone Orsi <[email protected]>
- Alexandre Díaz <[email protected]>
- Eugene Molotov <[email protected]>

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/17.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
17 changes: 17 additions & 0 deletions auth_signup_verify_email/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# 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": "17.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
77 changes: 77 additions & 0 deletions auth_signup_verify_email/controllers/main.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
# 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 import _
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",
_("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)

Check warning on line 42 in auth_signup_verify_email/controllers/main.py

View check run for this annotation

Codecov / codecov/patch

auth_signup_verify_email/controllers/main.py#L38-L42

Added lines #L38 - L42 were not covered by tests
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.cr.savepoint():
sudo_users.signup(values, qcontext.get("token"))
sudo_users.reset_password(values.get("login"))
except Exception as error:

Check warning on line 58 in auth_signup_verify_email/controllers/main.py

View check run for this annotation

Codecov / codecov/patch

auth_signup_verify_email/controllers/main.py#L58

Added line #L58 was not covered by tests
# Duplicate key or wrong SMTP settings, probably
_logger.exception(error)

Check warning on line 60 in auth_signup_verify_email/controllers/main.py

View check run for this annotation

Codecov / codecov/patch

auth_signup_verify_email/controllers/main.py#L60

Added line #L60 was not covered by tests
if (
request.env["res.users"]
.sudo()
.search([("login", "=", qcontext.get("login"))])
):
qcontext["error"] = _(

Check warning on line 66 in auth_signup_verify_email/controllers/main.py

View check run for this annotation

Codecov / codecov/patch

auth_signup_verify_email/controllers/main.py#L66

Added line #L66 was not covered by tests
"Another user is already registered using this email" " address."
)
else:
# Agnostic message for security
qcontext["error"] = _(

Check warning on line 71 in auth_signup_verify_email/controllers/main.py

View check run for this annotation

Codecov / codecov/patch

auth_signup_verify_email/controllers/main.py#L71

Added line #L71 was not covered by tests
"Something went wrong, please try again later or" " contact us."
)
return request.render("auth_signup.signup", qcontext)

Check warning on line 74 in auth_signup_verify_email/controllers/main.py

View check run for this annotation

Codecov / codecov/patch

auth_signup_verify_email/controllers/main.py#L74

Added line #L74 was not covered by tests

qcontext["message"] = _("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 <[email protected]>\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 "لا يبدو أن هذا عنوان بريد إلكتروني."
42 changes: 42 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,42 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * auth_signup_verify_email
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.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
#, 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 ""
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 <[email protected]>, 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 <[email protected]>\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
Loading