Skip to content

Commit

Permalink
Merge commit 'refs/pull/430/head' of https://github.com/oca/server-auth
Browse files Browse the repository at this point in the history
… into 15.0-162
  • Loading branch information
docker-odoo committed Oct 24, 2022
2 parents b6b66a6 + 9c6e23f commit 3f16080
Show file tree
Hide file tree
Showing 29 changed files with 1,463 additions and 0 deletions.
106 changes: 106 additions & 0 deletions auth_signup_verify_email/README.rst
@@ -0,0 +1,106 @@
======================
Verify email at signup
======================

.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |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/14.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-14-0/server-auth-14-0-auth_signup_verify_email
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
:target: https://runbot.odoo-community.org/runbot/251/14.0
:alt: Try me on Runbot

|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 smashing it by providing a detailed and welcomed
`feedback <https://github.com/OCA/server-auth/issues/new?body=module:%20auth_signup_verify_email%0Aversion:%2014.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/14.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
@@ -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
@@ -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": "15.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
@@ -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
80 changes: 80 additions & 0 deletions auth_signup_verify_email/controllers/main.py
@@ -0,0 +1,80 @@
# 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)
if not values.get("email"):
values["email"] = values.get("login")

# preserve user lang
values["lang"] = request.context.get("lang", "")

# 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:
# Duplicate key or wrong SMTP settings, probably
_logger.exception(error)
if (
request.env["res.users"]
.sudo()
.search([("login", "=", qcontext.get("login"))])
):
qcontext["error"] = _(
"Another user is already registered using this email" " address."
)
else:
# Agnostic message for security
qcontext["error"] = _(
"Something went wrong, please try again later or" " contact us."
)
return request.render("auth_signup.signup", qcontext)

qcontext["message"] = _("Check your email to activate your account!")
return request.render("auth_signup.reset_password", qcontext)
42 changes: 42 additions & 0 deletions auth_signup_verify_email/i18n/ar.po
@@ -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 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
#: 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
#: 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
#: 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
#: 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
@@ -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 14.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
#: 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
#: 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
#: 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
#: code:addons/auth_signup_verify_email/controllers/main.py:0
#, python-format
msgid "That does not seem to be an email address."
msgstr ""
45 changes: 45 additions & 0 deletions auth_signup_verify_email/i18n/de.po
@@ -0,0 +1,45 @@
# 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
#: 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
#: 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
#: 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
#: 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."
44 changes: 44 additions & 0 deletions auth_signup_verify_email/i18n/es.po
@@ -0,0 +1,44 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * auth_signup_verify_email
#
# Translators:
# Antonio Trueba, 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: Spanish (http://www.transifex.com/oca/OCA-server-tools-9-0/"
"language/es/)\n"
"Language: es\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
#: 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
#: code:addons/auth_signup_verify_email/controllers/main.py:0
#, python-format
msgid "Check your email to activate your account!"
msgstr "Revise su correo para activar su cuenta."

#. module: auth_signup_verify_email
#: code:addons/auth_signup_verify_email/controllers/main.py:0
#, python-format
msgid "Something went wrong, please try again later or contact us."
msgstr "Algo ha ido mal, por favor inténtelo de nuevo más tarde o contáctenos."

#. module: auth_signup_verify_email
#: code:addons/auth_signup_verify_email/controllers/main.py:0
#, python-format
msgid "That does not seem to be an email address."
msgstr "Eso no parece una dirección de email válida."

0 comments on commit 3f16080

Please sign in to comment.