Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
87 changes: 87 additions & 0 deletions auth_signup_verify_email/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3

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

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

To achieve this requirement, the user does not need to provide a password at
sign up, but when logging in later for the first time.

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

* Install validate_email_ with ``pip install validate_email`` or equivalent.

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

To configure this module, you need to:

* `Properly configure your outgoing email server(s)
<https://www.odoo.com/es_ES/forum/help-1/question/how-to-configure-email-gateway-282#answer_290>`_.
* Go to *Settings > General Settings* and enable *Allow
external users to sign up*.

Usage
=====

To use this module, you need to:

* Log out.
* `Sign up </web/signup>`_ with a valid email.

.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas
:alt: Try me on Runbot
:target: https://runbot.odoo-community.org/runbot/149/9.0

Known issues / Roadmap
======================

* Remove calls to ``cr.commit()`` in tests when
https://github.com/odoo/odoo/issues/12237 gets fixed.

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

Bugs are tracked on `GitHub Issues
<https://github.com/OCA/server-tools/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.


Credits
=======

Icon
----

* https://openclipart.org/detail/3040/thumbtack-note-email
* https://openclipart.org/detail/202732/check-mark

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

* Rafael Blasco <rafaelbn@antiun.com>
* Jairo Llopis <yajo.sk8@gmail.com>

Maintainer
----------

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

This module is maintained by the OCA.

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.

To contribute to this module, please visit https://odoo-community.org.

.. _validate_email: https://pypi.python.org/pypi/validate_email
5 changes: 5 additions & 0 deletions auth_signup_verify_email/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# -*- coding: utf-8 -*-
# © 2015 Antiun Ingeniería, S.L.
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).

from . import controllers
28 changes: 28 additions & 0 deletions auth_signup_verify_email/__openerp__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# -*- coding: utf-8 -*-
# © 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": "9.0.1.0.0",
"category": "Authentication",
"website": "http://www.tecnativa.com",
"author": "Antiun Ingeniería S.L., "
"Tecnativa, "
"Odoo Community Association (OCA)",
"license": "AGPL-3",
"application": False,
"installable": True,
"external_dependencies": {
"python": [
"lxml",
"validate_email",
],
},
"depends": [
"auth_signup",
],
"data": [
"views/signup.xml",
],
}
5 changes: 5 additions & 0 deletions auth_signup_verify_email/controllers/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# -*- coding: utf-8 -*-
# © 2015 Antiun Ingeniería, S.L.
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).

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

import logging
from openerp import _, http
from openerp.addons.auth_signup.controllers.main import AuthSignupHome

_logger = logging.getLogger(__name__)

try:
from validate_email import validate_email
except ImportError:
_logger.debug("Cannot import `validate_email`.")


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

def passwordless_signup(self, values):
qcontext = self.get_auth_signup_qcontext()

# Check good format of e-mail
if not validate_email(values.get("login", "")):
qcontext["error"] = _("That does not seem to be an email address.")
return http.request.render("auth_signup.signup", qcontext)
elif not values.get("email"):
values["email"] = values.get("login")

# Remove password
values["password"] = False
sudo_users = (http.request.env["res.users"]
.with_context(create_user=True).sudo())

try:
with http.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)

# Agnostic message for security
qcontext["error"] = _(
"Something went wrong, please try again later or contact us.")
return http.request.render("auth_signup.signup", qcontext)

qcontext["message"] = _("Check your email to activate your account!")
return http.request.render("auth_signup.reset_password", qcontext)
47 changes: 47 additions & 0 deletions auth_signup_verify_email/i18n/de.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# 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 (8.0)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-01-19 14:44+0000\n"
"PO-Revision-Date: 2016-01-18 13:24+0000\n"
"Last-Translator: Rudolf Schnapka <rs@techno-flex.de>\n"
"Language-Team: German (http://www.transifex.com/oca/OCA-server-tools-8-0/language/de/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: de\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. module: auth_signup_verify_email
#: code:addons/auth_signup_verify_email/controllers/main.py:54
#, 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:50
#, 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:31
#, python-format
msgid "That does not seem to be an email address."
msgstr "Das schein keine Email-Adresse zu sein."

#. module: auth_signup_verify_email
#: view:website:auth_signup.fields
msgid "email"
msgstr "EMail"

#. module: auth_signup_verify_email
#: view:website:auth_signup.fields
msgid "only_passwords"
msgstr ""
48 changes: 48 additions & 0 deletions auth_signup_verify_email/i18n/es.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * auth_signup_verify_email
#
# Translators:
# Antonio Trueba, 2016
# Antonio Trueba, 2016
msgid ""
msgstr ""
"Project-Id-Version: server-tools (8.0)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-01-19 14:44+0000\n"
"PO-Revision-Date: 2016-02-16 15:15+0000\n"
"Last-Translator: Antonio Trueba\n"
"Language-Team: Spanish (http://www.transifex.com/oca/OCA-server-tools-8-0/language/es/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: es\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. module: auth_signup_verify_email
#: code:addons/auth_signup_verify_email/controllers/main.py:54
#, 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:50
#, 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:31
#, python-format
msgid "That does not seem to be an email address."
msgstr "Eso no parece una dirección de email válida."

#. module: auth_signup_verify_email
#: view:website:auth_signup.fields
msgid "email"
msgstr "email"

#. module: auth_signup_verify_email
#: view:website:auth_signup.fields
msgid "only_passwords"
msgstr ""
47 changes: 47 additions & 0 deletions auth_signup_verify_email/i18n/it.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * auth_signup_verify_email
#
# Translators:
# Paolo Valier, 2016
msgid ""
msgstr ""
"Project-Id-Version: server-tools (8.0)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-03-17 15:36+0000\n"
"PO-Revision-Date: 2016-03-13 08:59+0000\n"
"Last-Translator: Paolo Valier\n"
"Language-Team: Italian (http://www.transifex.com/oca/OCA-server-tools-8-0/language/it/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: it\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. module: auth_signup_verify_email
#: code:addons/auth_signup_verify_email/controllers/main.py:54
#, python-format
msgid "Check your email to activate your account!"
msgstr "Controlla la tua email per attivare il tuo account!"

#. module: auth_signup_verify_email
#: code:addons/auth_signup_verify_email/controllers/main.py:50
#, python-format
msgid "Something went wrong, please try again later or contact us."
msgstr "Qualcosa non è funzionato, prego provare più tardi altrimenti mettiti in contatto con noi."

#. module: auth_signup_verify_email
#: code:addons/auth_signup_verify_email/controllers/main.py:31
#, python-format
msgid "That does not seem to be an email address."
msgstr "Questo non sembra essere un indirizzo email valido."

#. module: auth_signup_verify_email
#: view:website:auth_signup.fields
msgid "email"
msgstr "email"

#. module: auth_signup_verify_email
#: view:website:auth_signup.fields
msgid "only_passwords"
msgstr ""
46 changes: 46 additions & 0 deletions auth_signup_verify_email/i18n/pt_BR.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
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: server-tools (8.0)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-11-27 14:01+0000\n"
"PO-Revision-Date: 2015-11-12 20:16+0000\n"
"Last-Translator: <>\n"
"Language-Team: Portuguese (Brazil) (http://www.transifex.com/oca/OCA-server-tools-8-0/language/pt_BR/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: pt_BR\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"

#. module: auth_signup_verify_email
#: code:addons/auth_signup_verify_email/controllers/main.py:54
#, 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:50
#, 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:31
#, python-format
msgid "That does not seem to be an email address."
msgstr ""

#. module: auth_signup_verify_email
#: view:website:auth_signup.fields
msgid "email"
msgstr "email"

#. module: auth_signup_verify_email
#: view:website:auth_signup.fields
msgid "only_passwords"
msgstr ""
Loading