Browse Source
[9.0][MIG][auth_signup_verify_email] Migration. (#436)
[9.0][MIG][auth_signup_verify_email] Migration. (#436)
* Add module auth_signup_verify_email. * Import module following guidelines. * README typos. * OCA Transbot updated translations from Transifex * Credit creator. * author name correction * [9.0][MIG][auth_signup_verify_email] Migration. Migrate to v9. * [FIX] auth_signup_verify_email: Python library requirement * Add tests, fix xml tags, fix credits. * Fix test.pull/320/merge
Yajo
9 years ago
committed by
Moises Lopez - https://www.vauxoo.com/
17 changed files with 732 additions and 0 deletions
-
87auth_signup_verify_email/README.rst
-
5auth_signup_verify_email/__init__.py
-
28auth_signup_verify_email/__openerp__.py
-
5auth_signup_verify_email/controllers/__init__.py
-
55auth_signup_verify_email/controllers/main.py
-
47auth_signup_verify_email/i18n/de.po
-
48auth_signup_verify_email/i18n/es.po
-
47auth_signup_verify_email/i18n/it.po
-
46auth_signup_verify_email/i18n/pt_BR.po
-
47auth_signup_verify_email/i18n/sl.po
-
47auth_signup_verify_email/i18n/tr.po
-
BINauth_signup_verify_email/static/description/icon.png
-
172auth_signup_verify_email/static/description/icon.svg
-
5auth_signup_verify_email/tests/__init__.py
-
72auth_signup_verify_email/tests/test_verify_email.py
-
20auth_signup_verify_email/views/signup.xml
-
1requirements.txt
@ -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 |
@ -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 |
@ -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", |
|||
], |
|||
} |
@ -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 |
@ -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) |
@ -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 "" |
@ -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 "" |
@ -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 "" |
@ -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 "" |
@ -0,0 +1,47 @@ |
|||
# Translation of Odoo Server. |
|||
# This file contains the translation of the following modules: |
|||
# * auth_signup_verify_email |
|||
# |
|||
# Translators: |
|||
# Matjaž Mozetič <m.mozetic@matmoz.si>, 2015 |
|||
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-13 11:44+0000\n" |
|||
"Last-Translator: Matjaž Mozetič <m.mozetic@matmoz.si>\n" |
|||
"Language-Team: Slovenian (http://www.transifex.com/oca/OCA-server-tools-8-0/language/sl/)\n" |
|||
"MIME-Version: 1.0\n" |
|||
"Content-Type: text/plain; charset=UTF-8\n" |
|||
"Content-Transfer-Encoding: \n" |
|||
"Language: sl\n" |
|||
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\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 "Preverite svojo e-pošto za aktiviranje računa!" |
|||
|
|||
#. 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 "Nekaj je narobe. Ponovno poskusite kasneje ali pa stopite v stik z nami." |
|||
|
|||
#. 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 "Kaže, da to ni e-poštni naslov." |
|||
|
|||
#. module: auth_signup_verify_email |
|||
#: view:website:auth_signup.fields |
|||
msgid "email" |
|||
msgstr "e-pošta" |
|||
|
|||
#. module: auth_signup_verify_email |
|||
#: view:website:auth_signup.fields |
|||
msgid "only_passwords" |
|||
msgstr "only_passwords" |
@ -0,0 +1,47 @@ |
|||
# Translation of Odoo Server. |
|||
# This file contains the translation of the following modules: |
|||
# * auth_signup_verify_email |
|||
# |
|||
# Translators: |
|||
# Ahmet Altınışık <aaltinisik@altinkaya.com.tr>, 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-31 14:58+0000\n" |
|||
"Last-Translator: Ahmet Altınışık <aaltinisik@altinkaya.com.tr>\n" |
|||
"Language-Team: Turkish (http://www.transifex.com/oca/OCA-server-tools-8-0/language/tr/)\n" |
|||
"MIME-Version: 1.0\n" |
|||
"Content-Type: text/plain; charset=UTF-8\n" |
|||
"Content-Transfer-Encoding: \n" |
|||
"Language: tr\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 "Hesabınızı aktive etmek için e-postanızı kontrol edin!" |
|||
|
|||
#. 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 "Bişeyler ters gitti. Lütfen sonra tekrar deneyin ya da bize ulaşın." |
|||
|
|||
#. 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 "Bu bir e-posta adresi gözükmüyor." |
|||
|
|||
#. module: auth_signup_verify_email |
|||
#: view:website:auth_signup.fields |
|||
msgid "email" |
|||
msgstr "eposta" |
|||
|
|||
#. module: auth_signup_verify_email |
|||
#: view:website:auth_signup.fields |
|||
msgid "only_passwords" |
|||
msgstr "sadece_parolalar" |
After Width: 100 | Height: 100 | Size: 10 KiB |
172
auth_signup_verify_email/static/description/icon.svg
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -0,0 +1,5 @@ |
|||
# -*- coding: utf-8 -*- |
|||
# © 2016 Jairo Llopis <jairo.llopis@tecnativa.com> |
|||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). |
|||
|
|||
from . import test_verify_email |
@ -0,0 +1,72 @@ |
|||
# -*- coding: utf-8 -*- |
|||
# © 2016 Jairo Llopis <jairo.llopis@tecnativa.com> |
|||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). |
|||
|
|||
from urllib import urlencode |
|||
from lxml.html import document_fromstring |
|||
from openerp import _ |
|||
from openerp.tests.common import HttpCase |
|||
|
|||
|
|||
class UICase(HttpCase): |
|||
def setUp(self): |
|||
super(UICase, self).setUp() |
|||
self.icp = self.env["ir.config_parameter"] |
|||
self.old_allow_uninvited = self.icp.get_param( |
|||
"auth_signup.allow_uninvited") |
|||
self.icp.set_param("auth_signup.allow_uninvited", "True") |
|||
|
|||
# Workaround https://github.com/odoo/odoo/issues/12237 |
|||
self.cr.commit() |
|||
|
|||
self.data = { |
|||
"csrf_token": self.csrf_token(), |
|||
"name": "Somebody", |
|||
} |
|||
self.msg = { |
|||
"badmail": _("That does not seem to be an email address."), |
|||
"failure": _( |
|||
"Something went wrong, please try again later or contact us."), |
|||
"success": _("Check your email to activate your account!"), |
|||
} |
|||
|
|||
def tearDown(self): |
|||
"""Workaround https://github.com/odoo/odoo/issues/12237.""" |
|||
super(UICase, self).tearDown() |
|||
self.icp.set_param( |
|||
"auth_signup.allow_uninvited", self.old_allow_uninvited) |
|||
self.cr.commit() |
|||
|
|||
def html_doc(self, url="/web/signup", data=None, timeout=10): |
|||
"""Get an HTML LXML document.""" |
|||
if data: |
|||
data = bytes(urlencode(data)) |
|||
return document_fromstring(self.url_open(url, data, timeout).read()) |
|||
|
|||
def csrf_token(self): |
|||
"""Get a valid CSRF token.""" |
|||
doc = self.html_doc() |
|||
return doc.xpath("//input[@name='csrf_token']")[0].get("value") |
|||
|
|||
def search_text(self, doc, text): |
|||
"""Search for any element containing the text.""" |
|||
return doc.xpath("//*[contains(text(), '%s')]" % text) |
|||
|
|||
def test_bad_email(self): |
|||
"""Test rejection of bad emails.""" |
|||
self.data["login"] = "bad email" |
|||
doc = self.html_doc(data=self.data) |
|||
self.assertTrue(self.search_text(doc, self.msg["badmail"])) |
|||
|
|||
def test_good_email(self): |
|||
"""Test acceptance of good emails. |
|||
|
|||
This test could lead to success if your SMTP settings are correct, or |
|||
to failure otherwise. Any case is expected, since tests usually run |
|||
under unconfigured demo instances. |
|||
""" |
|||
self.data["login"] = "good@example.com" |
|||
doc = self.html_doc(data=self.data) |
|||
self.assertTrue( |
|||
self.search_text(doc, self.msg["failure"]) or |
|||
self.search_text(doc, self.msg["success"])) |
@ -0,0 +1,20 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<!-- © 2016 Jairo Llopis <jairo.llopis@tecnativa.com> |
|||
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). --> |
|||
<odoo> |
|||
|
|||
<template id="signup_fields" inherit_id="auth_signup.fields"> |
|||
<xpath expr="//div[@class='form-group field-password']" |
|||
position="attributes"> |
|||
<attribute name="t-if">only_passwords</attribute> |
|||
</xpath> |
|||
<xpath expr="//div[@class='form-group field-confirm_password']" |
|||
position="attributes"> |
|||
<attribute name="t-if">only_passwords</attribute> |
|||
</xpath> |
|||
<xpath expr="//input[@name='login']" position="attributes"> |
|||
<attribute name="type">email</attribute> |
|||
</xpath> |
|||
</template> |
|||
|
|||
</odoo> |
Write
Preview
Loading…
Cancel
Save
Reference in new issue