diff --git a/auth_signup_verify_email/README.rst b/auth_signup_verify_email/README.rst new file mode 100644 index 000000000..55ea1092c --- /dev/null +++ b/auth_signup_verify_email/README.rst @@ -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 `__ with + ``pip install email_validator`` or equivalent. + +Configuration +============= + +To configure this module, you need to: + +- `Properly configure your outgoing email + server(s) `__. +- 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 `__ with a valid email. + +Bug Tracker +=========== + +Bugs are tracked on `GitHub 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 `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +------- + +* Antiun Ingeniería S.L. +* Tecnativa + +Contributors +------------ + +- Rafael Blasco +- Jairo Llopis +- Simone Orsi +- Alexandre Díaz +- Eugene Molotov + +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 `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/auth_signup_verify_email/__init__.py b/auth_signup_verify_email/__init__.py new file mode 100644 index 000000000..54d1454ec --- /dev/null +++ b/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 diff --git a/auth_signup_verify_email/__manifest__.py b/auth_signup_verify_email/__manifest__.py new file mode 100644 index 000000000..5843275d4 --- /dev/null +++ b/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": "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, +} diff --git a/auth_signup_verify_email/controllers/__init__.py b/auth_signup_verify_email/controllers/__init__.py new file mode 100644 index 000000000..437ebe48e --- /dev/null +++ b/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 diff --git a/auth_signup_verify_email/controllers/main.py b/auth_signup_verify_email/controllers/main.py new file mode 100644 index 000000000..3c1564b5d --- /dev/null +++ b/auth_signup_verify_email/controllers/main.py @@ -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) + 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: + # 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) diff --git a/auth_signup_verify_email/i18n/ar.po b/auth_signup_verify_email/i18n/ar.po new file mode 100644 index 000000000..afd537901 --- /dev/null +++ b/auth_signup_verify_email/i18n/ar.po @@ -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 \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 "لا يبدو أن هذا عنوان بريد إلكتروني." diff --git a/auth_signup_verify_email/i18n/auth_signup_verify_email.pot b/auth_signup_verify_email/i18n/auth_signup_verify_email.pot new file mode 100644 index 000000000..6899dc8e4 --- /dev/null +++ b/auth_signup_verify_email/i18n/auth_signup_verify_email.pot @@ -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 "" diff --git a/auth_signup_verify_email/i18n/de.po b/auth_signup_verify_email/i18n/de.po new file mode 100644 index 000000000..516bb6e2e --- /dev/null +++ b/auth_signup_verify_email/i18n/de.po @@ -0,0 +1,49 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_signup_verify_email +# +# Translators: +# Rudolf Schnapka , 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 \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." diff --git a/auth_signup_verify_email/i18n/es.po b/auth_signup_verify_email/i18n/es.po new file mode 100644 index 000000000..a4ea698e1 --- /dev/null +++ b/auth_signup_verify_email/i18n/es.po @@ -0,0 +1,50 @@ +# 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: 2023-09-02 19:25+0000\n" +"Last-Translator: Ivorra78 \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" +"X-Generator: Weblate 4.17\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 "" +"Ya hay otro usuario registrado con esta dirección de correo electrónico." + +#. 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 "¡Revise su correo para activar su cuenta!" + +#. 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 "Algo ha ido mal, por favor inténtelo de nuevo más tarde o contáctenos." + +#. 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 "Eso no parece una dirección de email válida." diff --git a/auth_signup_verify_email/i18n/fr.po b/auth_signup_verify_email/i18n/fr.po new file mode 100644 index 000000000..d8b53ff35 --- /dev/null +++ b/auth_signup_verify_email/i18n/fr.po @@ -0,0 +1,48 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_signup_verify_email +# +# Translators: +# Alexandre Papin , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-03-18 02:19+0000\n" +"PO-Revision-Date: 2017-03-18 02:19+0000\n" +"Last-Translator: Alexandre Papin , 2017\n" +"Language-Team: French (https://www.transifex.com/oca/teams/23907/fr/)\n" +"Language: fr\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 "Un email vous à été envoyé pour activer votre compte." + +#. 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 "" +"Une erreur est survenue, veuillez réessayer plus tard ou contactez nous." + +#. 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 "Veuillez fournir une adresse email valide." diff --git a/auth_signup_verify_email/i18n/hr.po b/auth_signup_verify_email/i18n/hr.po new file mode 100644 index 000000000..964067a5e --- /dev/null +++ b/auth_signup_verify_email/i18n/hr.po @@ -0,0 +1,49 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_signup_verify_email +# +# Translators: +# Bole , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-05-10 00:47+0000\n" +"PO-Revision-Date: 2019-11-13 17:34+0000\n" +"Last-Translator: Bole \n" +"Language-Team: Croatian (https://www.transifex.com/oca/teams/23907/hr/)\n" +"Language: hr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Weblate 3.8\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 "Drugi korisnik je već registriran sa ovom mail adresom." + +#. 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 "Provjerite svoj e-mail za aktivaciu računa!" + +#. 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 "Nešto nije u redu, molimo pokušajte ponovo ili nas kontaktirajte." + +#. 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 "Ovo ne izgleda kao e-mail adresa." diff --git a/auth_signup_verify_email/i18n/hr_HR.po b/auth_signup_verify_email/i18n/hr_HR.po new file mode 100644 index 000000000..a3e0736a0 --- /dev/null +++ b/auth_signup_verify_email/i18n/hr_HR.po @@ -0,0 +1,51 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_signup_verify_email +# +# Translators: +# Bole , 2016 +msgid "" +msgstr "" +"Project-Id-Version: server-tools (9.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-06-29 00:48+0000\n" +"PO-Revision-Date: 2016-06-13 08:38+0000\n" +"Last-Translator: Bole \n" +"Language-Team: Croatian (Croatia) (http://www.transifex.com/oca/OCA-server-" +"tools-9-0/language/hr_HR/)\n" +"Language: hr_HR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 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 "Provjerite svoj mail za aktiviranje računa" + +#. 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 "" +"Nešto nije u redu, molimo pokušajte se prijaviti kasnije ili nas " +"kontaktirajte." + +#. 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 "Ovo ne izgleda kao valjana mail adresa." diff --git a/auth_signup_verify_email/i18n/it.po b/auth_signup_verify_email/i18n/it.po new file mode 100644 index 000000000..691201a87 --- /dev/null +++ b/auth_signup_verify_email/i18n/it.po @@ -0,0 +1,50 @@ +# 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 (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 \n" +"Language-Team: Italian (http://www.transifex.com/oca/OCA-server-tools-9-0/" +"language/it/)\n" +"Language: it\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 "Controlla la tua email per attivare il tuo account!" + +#. 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 "" +"Qualcosa non è funzionato, prego provare più tardi altrimenti mettiti in " +"contatto con noi." + +#. 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 "Questo non sembra essere un indirizzo email valido." diff --git a/auth_signup_verify_email/i18n/pt_BR.po b/auth_signup_verify_email/i18n/pt_BR.po new file mode 100644 index 000000000..fadd6cea0 --- /dev/null +++ b/auth_signup_verify_email/i18n/pt_BR.po @@ -0,0 +1,51 @@ +# 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: 2019-09-03 03:23+0000\n" +"Last-Translator: Rodrigo Macedo \n" +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/oca/OCA-server-" +"tools-8-0/language/pt_BR/)\n" +"Language: pt_BR\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" +"X-Generator: Weblate 3.8\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 "Outro usuário já está registrado usando este endereço de email." + +#. 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 "Verifique seu e-mail para ativar sua conta!" + +#. 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 "Ocorreu um erro. Tente novamente mais tarde ou entre em contato." + +#. 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 "Esse não parece ser um endereço de email." + +#~ msgid "email" +#~ msgstr "email" diff --git a/auth_signup_verify_email/i18n/ro.po b/auth_signup_verify_email/i18n/ro.po new file mode 100644 index 000000000..46934a7a9 --- /dev/null +++ b/auth_signup_verify_email/i18n/ro.po @@ -0,0 +1,49 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_signup_verify_email +# +# Translators: +# Daniel Schweiger , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-06-22 01:11+0000\n" +"PO-Revision-Date: 2017-06-22 01:11+0000\n" +"Last-Translator: Daniel Schweiger , 2017\n" +"Language-Team: Romanian (https://www.transifex.com/oca/teams/23907/ro/)\n" +"Language: ro\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2: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 "Ati primit un email pentru activarea acestui cont!" + +#. 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 "" +"Sa produs o eroare, va rugam sa incercati mai tarziu sau contacteaza-ne." + +#. 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 "Nu ati introdus o directie email corespunzatoare." diff --git a/auth_signup_verify_email/i18n/sl.po b/auth_signup_verify_email/i18n/sl.po new file mode 100644 index 000000000..c69e213da --- /dev/null +++ b/auth_signup_verify_email/i18n/sl.po @@ -0,0 +1,50 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_signup_verify_email +# +# Translators: +# Matjaž Mozetič , 2015 +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 \n" +"Language-Team: Slovenian (http://www.transifex.com/oca/OCA-server-tools-9-0/" +"language/sl/)\n" +"Language: sl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \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 +#. 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 "Preverite svojo e-pošto za aktiviranje računa!" + +#. 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 "" +"Nekaj je narobe. Ponovno poskusite kasneje ali pa stopite v stik z nami." + +#. 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 "Kaže, da to ni e-poštni naslov." diff --git a/auth_signup_verify_email/i18n/tr.po b/auth_signup_verify_email/i18n/tr.po new file mode 100644 index 000000000..d7f084b1d --- /dev/null +++ b/auth_signup_verify_email/i18n/tr.po @@ -0,0 +1,48 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_signup_verify_email +# +# Translators: +# Ahmet Altınışık , 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 \n" +"Language-Team: Turkish (http://www.transifex.com/oca/OCA-server-tools-9-0/" +"language/tr/)\n" +"Language: tr\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 "Hesabınızı aktive etmek için e-postanızı kontrol edin!" + +#. 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 "Bişeyler ters gitti. Lütfen sonra tekrar deneyin ya da bize ulaşın." + +#. 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 "Bu bir e-posta adresi gözükmüyor." diff --git a/auth_signup_verify_email/pyproject.toml b/auth_signup_verify_email/pyproject.toml new file mode 100644 index 000000000..4231d0ccc --- /dev/null +++ b/auth_signup_verify_email/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/auth_signup_verify_email/readme/CONFIGURE.md b/auth_signup_verify_email/readme/CONFIGURE.md new file mode 100644 index 000000000..0fa0a8b00 --- /dev/null +++ b/auth_signup_verify_email/readme/CONFIGURE.md @@ -0,0 +1,6 @@ +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*. diff --git a/auth_signup_verify_email/readme/CONTRIBUTORS.md b/auth_signup_verify_email/readme/CONTRIBUTORS.md new file mode 100644 index 000000000..53d721f8d --- /dev/null +++ b/auth_signup_verify_email/readme/CONTRIBUTORS.md @@ -0,0 +1,5 @@ +- Rafael Blasco \<\> +- Jairo Llopis \<\> +- Simone Orsi \<\> +- Alexandre Díaz \<\> +- Eugene Molotov \<\> diff --git a/auth_signup_verify_email/readme/DESCRIPTION.md b/auth_signup_verify_email/readme/DESCRIPTION.md new file mode 100644 index 000000000..bd8e7df8f --- /dev/null +++ b/auth_signup_verify_email/readme/DESCRIPTION.md @@ -0,0 +1,5 @@ +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. diff --git a/auth_signup_verify_email/readme/INSTALL.md b/auth_signup_verify_email/readme/INSTALL.md new file mode 100644 index 000000000..79255ee07 --- /dev/null +++ b/auth_signup_verify_email/readme/INSTALL.md @@ -0,0 +1,2 @@ +- Install [email_validator](https://pypi.org/project/email-validator/) + with `pip install email_validator` or equivalent. diff --git a/auth_signup_verify_email/readme/USAGE.md b/auth_signup_verify_email/readme/USAGE.md new file mode 100644 index 000000000..9cac58355 --- /dev/null +++ b/auth_signup_verify_email/readme/USAGE.md @@ -0,0 +1,4 @@ +To use this module, you need to: + +- Log out. +- [Sign up](/web/signup) with a valid email. diff --git a/auth_signup_verify_email/static/description/icon.png b/auth_signup_verify_email/static/description/icon.png new file mode 100644 index 000000000..52e1b17dc Binary files /dev/null and b/auth_signup_verify_email/static/description/icon.png differ diff --git a/auth_signup_verify_email/static/description/icon.svg b/auth_signup_verify_email/static/description/icon.svg new file mode 100644 index 000000000..ea6e7c2df --- /dev/null +++ b/auth_signup_verify_email/static/description/icon.svg @@ -0,0 +1,172 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + Openclipart + + + + 2007-02-06T06:13:53 + Thumbtack note with message "E-mail!" + https://openclipart.org/detail/3040/thumbtack-note-email-by-zeimusu + + + zeimusu + + + + + bulletin + email + memo + note + thumbtack + thumbtack note + + + + + + + + + + + diff --git a/auth_signup_verify_email/static/description/index.html b/auth_signup_verify_email/static/description/index.html new file mode 100644 index 000000000..ae8b91cd6 --- /dev/null +++ b/auth_signup_verify_email/static/description/index.html @@ -0,0 +1,458 @@ + + + + + + +Verify email at signup + + + +
+

Verify email at signup

+ + +

Beta License: AGPL-3 OCA/server-auth Translate me on Weblate Try me on Runboat

+

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

+ +
+

Installation

+
    +
  • Install +email_validator with +pip install email_validator or equivalent.
  • +
+
+
+

Configuration

+

To configure this module, you need to:

+ +
+
+

Usage

+

To use this module, you need to:

+
    +
  • Log out.
  • +
  • Sign up with a valid email.
  • +
+
+
+

Bug Tracker

+

Bugs are tracked on GitHub 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.

+

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

+
+
+

Credits

+
+

Authors

+
    +
  • Antiun Ingeniería S.L.
  • +
  • Tecnativa
  • +
+
+
+

Contributors

+ +
+
+

Maintainers

+

This module is maintained by the OCA.

+Odoo Community Association +

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 project on GitHub.

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+
+ + diff --git a/auth_signup_verify_email/tests/__init__.py b/auth_signup_verify_email/tests/__init__.py new file mode 100644 index 000000000..f658c7d10 --- /dev/null +++ b/auth_signup_verify_email/tests/__init__.py @@ -0,0 +1,4 @@ +# Copyright 2016 Jairo Llopis +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from . import test_verify_email diff --git a/auth_signup_verify_email/tests/test_verify_email.py b/auth_signup_verify_email/tests/test_verify_email.py new file mode 100644 index 000000000..39a82073c --- /dev/null +++ b/auth_signup_verify_email/tests/test_verify_email.py @@ -0,0 +1,53 @@ +# Copyright 2016 Jairo Llopis +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from lxml.html import document_fromstring + +try: + from unittest.mock import patch +except ImportError: + from unittest.mock import patch + +from odoo.tests.common import HttpCase +from odoo.tools.misc import mute_logger + +from odoo.addons.mail.models import mail_template + + +class UICase(HttpCase): + def setUp(self): + super().setUp() + if "website" in self.env: + # Enable public signup in website if it is installed; otherwise + # tests here would fail + current_website = self.env["website"].get_current_website() + current_website.auth_signup_uninvited = "b2c" + self.env["ir.config_parameter"].set_param("auth_signup.invitation_scope", "b2c") + self.data = { + "csrf_token": self.csrf_token(), + "name": "Somebody", + } + + def html_doc(self, url="/web/signup", data=None, timeout=30): + """Get an HTML LXML document.""" + with patch(mail_template.__name__ + ".MailTemplate.send_mail"): + resp = self.url_open(url, data=data, timeout=timeout) + return document_fromstring(resp.content) + + def csrf_token(self): + """Get a valid CSRF token.""" + doc = self.html_doc() + return doc.xpath("//input[@name='csrf_token']")[0].get("value") + + def test_bad_email(self): + """Test rejection of bad emails.""" + self.data["login"] = "bad email" + doc = self.html_doc(data=self.data) + self.assertTrue(doc.xpath('//p[@class="alert alert-danger"]')) + + @mute_logger("odoo.addons.auth_signup_verify_email.controllers.main") + def test_good_email(self): + """Test acceptance of good emails.""" + self.data["login"] = "contributors@odoo-community.org" + doc = self.html_doc(data=self.data) + self.assertTrue(doc.xpath('//p[@class="alert alert-success"]')) diff --git a/auth_signup_verify_email/views/signup.xml b/auth_signup_verify_email/views/signup.xml new file mode 100644 index 000000000..49b44e7b0 --- /dev/null +++ b/auth_signup_verify_email/views/signup.xml @@ -0,0 +1,16 @@ + + + + + diff --git a/pandoc-3.1.11-1-amd64.deb b/pandoc-3.1.11-1-amd64.deb new file mode 100644 index 000000000..9e5a1ea57 Binary files /dev/null and b/pandoc-3.1.11-1-amd64.deb differ diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 000000000..976ea8d3b --- /dev/null +++ b/requirements.txt @@ -0,0 +1,3 @@ +# generated from manifests external_dependencies +email_validator +lxml