diff --git a/auth_admin_passkey/README.rst b/auth_admin_passkey/README.rst new file mode 100644 index 0000000000..6358f5ed6f --- /dev/null +++ b/auth_admin_passkey/README.rst @@ -0,0 +1,124 @@ +=============================================== +Authentification - System Administrator Passkey +=============================================== + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:3f2afea509893792f626486e3dea09f0ca00b6b578453774d1aca05fbdb2fe1e + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |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/12.0/auth_admin_passkey + :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-12-0/server-auth-12-0-auth_admin_passkey + :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=12.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module extends the functionality of users module to support loging in +with an extra system administrator password in other user accounts. + +* System Administrator has now the possibility to login in with any login + +* According to the configuration, Odoo will send a mail to user and admin to + indicate them + +**Table of contents** + +.. contents:: + :local: + +Configuration +============= + + +To enable this feature, once the module installed, you have to add the +following keys in your ``odoo.cfg`` configuration file. + +* ``auth_admin_passkey_password``. The password that allows user to logging in + with any login. If not set, the feature is disabled. + +* ``auth_admin_passkey_send_to_user`` (default True), if enabled, an email + will be send to the user, if his account has been used by the + System Administrator. + +* ``auth_admin_passkey_sysadmin_email``. If set, an email will be sent to this + mail. + +* ``auth_admin_passkey_sysadmin_lang``. the language (exemple en_US), used for + the mail sent to the System Administrator. If not set, the language of the + SUPERUSER_ID user will be used. + + +**typical Dev / Test configuration section** + +No keys to add. + +**typical Production configuration section** + + +.. code-block:: ini + + auth_admin_passkey_password = PASSKEY_PASSWORD + auth_admin_passkey_send_to_user = True + auth_admin_passkey_sysadmin_email = SYSADMIN_PASSWORD + auth_admin_passkey_sysadmin_lang = SYSADMIN_LANG + +* To avoid the usage of the admin passkey with some users go to the User record + and check the "Block Admin Passkey" checkbox. + +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 +~~~~~~~ + +* GRAP + +Contributors +~~~~~~~~~~~~ + +* Eugen Don +* Alexandre Papin (https://twitter.com/Fenkiou) +* Sylvain LE GAL (https://twitter.com/legalsylvain) +* Manuel Regidor + +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_admin_passkey/__init__.py b/auth_admin_passkey/__init__.py new file mode 100644 index 0000000000..0650744f6b --- /dev/null +++ b/auth_admin_passkey/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/auth_admin_passkey/__manifest__.py b/auth_admin_passkey/__manifest__.py new file mode 100644 index 0000000000..15bc0f6878 --- /dev/null +++ b/auth_admin_passkey/__manifest__.py @@ -0,0 +1,16 @@ +# Copyright (C) 2013-Today GRAP (http://www.grap.coop) +# @author Sylvain LE GAL (https://twitter.com/legalsylvain) +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html + +{ + "name": "Authentification - System Administrator Passkey", + "summary": "Allows system administrator to authenticate with any account", + "version": "13.0.1.0.0", + "category": "base", + "author": "GRAP,Odoo Community Association (OCA)", + "website": "https://github.com/OCA/server-auth", + "license": "AGPL-3", + "depends": ["base", "mail"], + "data": ["views/res_users_views.xml"], + "installable": True, +} diff --git a/auth_admin_passkey/i18n/ar.po b/auth_admin_passkey/i18n/ar.po new file mode 100644 index 0000000000..907cfe93d6 --- /dev/null +++ b/auth_admin_passkey/i18n/ar.po @@ -0,0 +1,50 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_admin_passkey +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: server-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-01-12 03:50+0000\n" +"PO-Revision-Date: 2017-01-11 15:36+0000\n" +"Last-Translator: OCA Transbot \n" +"Language-Team: Arabic (http://www.transifex.com/oca/OCA-server-tools-8-0/" +"language/ar/)\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 && n%100<=99 ? 4 : 5;\n" + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_res_users__block_admin_passkey +msgid "Block Admin Passkey" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:50 +#, python-format +msgid "Passkey used" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:51 +#, python-format +msgid "" +"System Administrator user used his passkey to login with %(login)s.\n" +"\n" +"\n" +"\n" +"Technicals informations belows : \n" +"\n" +"- Login date : %(login_date)s\n" +"\n" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_res_users +msgid "Users" +msgstr "المستخدمون" diff --git a/auth_admin_passkey/i18n/auth_admin_passkey.pot b/auth_admin_passkey/i18n/auth_admin_passkey.pot new file mode 100644 index 0000000000..111752fc9a --- /dev/null +++ b/auth_admin_passkey/i18n/auth_admin_passkey.pot @@ -0,0 +1,45 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_admin_passkey +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 12.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_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_res_users__block_admin_passkey +msgid "Block Admin Passkey" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:50 +#, python-format +msgid "Passkey used" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:51 +#, python-format +msgid "System Administrator user used his passkey to login with %(login)s.\n" +"\n" +"\n" +"\n" +"Technicals informations belows : \n" +"\n" +"- Login date : %(login_date)s\n" +"\n" +"" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_res_users +msgid "Users" +msgstr "" + diff --git a/auth_admin_passkey/i18n/ca.po b/auth_admin_passkey/i18n/ca.po new file mode 100644 index 0000000000..d21e22b13f --- /dev/null +++ b/auth_admin_passkey/i18n/ca.po @@ -0,0 +1,49 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_admin_passkey +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: server-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-01-17 07:51+0000\n" +"PO-Revision-Date: 2015-09-18 13:53+0000\n" +"Last-Translator: <>\n" +"Language-Team: Catalan (http://www.transifex.com/oca/OCA-server-tools-8-0/" +"language/ca/)\n" +"Language: ca\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_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_res_users__block_admin_passkey +msgid "Block Admin Passkey" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:50 +#, python-format +msgid "Passkey used" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:51 +#, python-format +msgid "" +"System Administrator user used his passkey to login with %(login)s.\n" +"\n" +"\n" +"\n" +"Technicals informations belows : \n" +"\n" +"- Login date : %(login_date)s\n" +"\n" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_res_users +msgid "Users" +msgstr "Usuaris" diff --git a/auth_admin_passkey/i18n/da.po b/auth_admin_passkey/i18n/da.po new file mode 100644 index 0000000000..65d3802eca --- /dev/null +++ b/auth_admin_passkey/i18n/da.po @@ -0,0 +1,49 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_admin_passkey +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: server-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-03-18 02:08+0000\n" +"PO-Revision-Date: 2015-09-18 13:53+0000\n" +"Last-Translator: <>\n" +"Language-Team: Danish (http://www.transifex.com/oca/OCA-server-tools-8-0/" +"language/da/)\n" +"Language: da\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_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_res_users__block_admin_passkey +msgid "Block Admin Passkey" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:50 +#, python-format +msgid "Passkey used" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:51 +#, python-format +msgid "" +"System Administrator user used his passkey to login with %(login)s.\n" +"\n" +"\n" +"\n" +"Technicals informations belows : \n" +"\n" +"- Login date : %(login_date)s\n" +"\n" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_res_users +msgid "Users" +msgstr "Brugere" diff --git a/auth_admin_passkey/i18n/de.po b/auth_admin_passkey/i18n/de.po new file mode 100644 index 0000000000..c763d6b9ef --- /dev/null +++ b/auth_admin_passkey/i18n/de.po @@ -0,0 +1,100 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_admin_passkey +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: German (https://www.transifex.com/oca/teams/23907/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_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_res_users__block_admin_passkey +msgid "Block Admin Passkey" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:50 +#, python-format +msgid "Passkey used" +msgstr "Verwendeter PassKey" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:51 +#, python-format +msgid "" +"System Administrator user used his passkey to login with %(login)s.\n" +"\n" +"\n" +"\n" +"Technicals informations belows : \n" +"\n" +"- Login date : %(login_date)s\n" +"\n" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_res_users +msgid "Users" +msgstr "Benutzer" + +#~ msgid "
User with login '%s' has the same password as you.
" +#~ msgstr "" +#~ "
Benutzer mit Anmeldename '%s' hat das gleiche Passwort wie Sie.
" + +#~ msgid "" +#~ "Admin user used his passkey to login with '%s'.\n" +#~ "\n" +#~ "\n" +#~ "\n" +#~ "Technicals informations belows : \n" +#~ "\n" +#~ "- Login date : %s\n" +#~ "\n" +#~ msgstr "" +#~ "Admin-Benutzer hat seinen PassKey verwendet, um sich als '%s' " +#~ "anzumelden.\n" +#~ "\n" +#~ "\n" +#~ "\n" +#~ "Technische Information folgt : \n" +#~ "\n" +#~ "- Login-Datum: %s\n" +#~ "\n" + +#~ msgid "Passkey" +#~ msgstr "PassKey" + +#~ msgid "Send email to admin user." +#~ msgstr "Sende Email an Admin-Benutzer." + +#~ msgid "Send email to user." +#~ msgstr "Sende Email an Benutzer" + +#~ msgid "" +#~ "When the administrator use his password to login in with a different " +#~ "account, Odoo will send an email to the account user." +#~ msgstr "" +#~ "Wenn der Administrator sein Passwort verwendet, um sich mit anderem Konto " +#~ "anzumelden, sendet das System dem Kontoinhaber eine Email." + +#~ msgid "" +#~ "When the administrator use his password to login in with a different " +#~ "account, Odoo will send an email to the admin user." +#~ msgstr "" +#~ "Wenn der Administrator sein Passwort verwendet, um sich als anderer " +#~ "Benutzer anzumelden, wird Oddoeine entsprechende Email an den Admin-" +#~ "Nutzer senden." + +#~ msgid "[WARNING] Odoo Security Risk" +#~ msgstr "[Warnung] Odoo Sicherheitsrisiko" diff --git a/auth_admin_passkey/i18n/el_GR.po b/auth_admin_passkey/i18n/el_GR.po new file mode 100644 index 0000000000..47987972e5 --- /dev/null +++ b/auth_admin_passkey/i18n/el_GR.po @@ -0,0 +1,49 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_admin_passkey +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: server-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-01-12 03:50+0000\n" +"PO-Revision-Date: 2015-09-18 13:53+0000\n" +"Last-Translator: <>\n" +"Language-Team: Greek (Greece) (http://www.transifex.com/oca/OCA-server-" +"tools-8-0/language/el_GR/)\n" +"Language: el_GR\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_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_res_users__block_admin_passkey +msgid "Block Admin Passkey" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:50 +#, python-format +msgid "Passkey used" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:51 +#, python-format +msgid "" +"System Administrator user used his passkey to login with %(login)s.\n" +"\n" +"\n" +"\n" +"Technicals informations belows : \n" +"\n" +"- Login date : %(login_date)s\n" +"\n" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_res_users +msgid "Users" +msgstr "Χρήστες" diff --git a/auth_admin_passkey/i18n/es.po b/auth_admin_passkey/i18n/es.po new file mode 100644 index 0000000000..ac9c259d46 --- /dev/null +++ b/auth_admin_passkey/i18n/es.po @@ -0,0 +1,89 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_admin_passkey +# +# Translators: +# OCA Transbot , 2017 +# enjolras , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-02 18:39+0000\n" +"PO-Revision-Date: 2018-03-02 18:39+0000\n" +"Last-Translator: enjolras , 2018\n" +"Language-Team: Spanish (https://www.transifex.com/oca/teams/23907/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_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_res_users__block_admin_passkey +msgid "Block Admin Passkey" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:50 +#, python-format +msgid "Passkey used" +msgstr "Clave de acceso utilizada" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:51 +#, python-format +msgid "" +"System Administrator user used his passkey to login with %(login)s.\n" +"\n" +"\n" +"\n" +"Technicals informations belows : \n" +"\n" +"- Login date : %(login_date)s\n" +"\n" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_res_users +msgid "Users" +msgstr "Usuarios" + +#~ msgid "
User with login '%s' has the same password as you.
" +#~ msgstr "" +#~ "
El usuario con identificador '%s' tiene la misma contraseña que "
+#~ "usted.
" + +#~ msgid "" +#~ "Admin user used his passkey to login with '%s'.\n" +#~ "\n" +#~ "\n" +#~ "\n" +#~ "Technicals informations belows : \n" +#~ "\n" +#~ "- Login date : %s\n" +#~ "\n" +#~ msgstr "" +#~ "El usuario administrador ha usado su contraseña para acceder a '%s'.\n" +#~ "\n" +#~ "\n" +#~ "\n" +#~ "Datos técnicos a continuación : \n" +#~ "\n" +#~ "- Fecha de acceso : %s\n" +#~ "\n" + +#~ msgid "Passkey" +#~ msgstr "Clave de acceso" + +#~ msgid "Send email to admin user." +#~ msgstr "Enviar email al usuario administrador." + +#~ msgid "Send email to user." +#~ msgstr "Enviar email al usuario." + +#~ msgid "[WARNING] Odoo Security Risk" +#~ msgstr "[ADVERTENCIA] Riesgo de seguridad de Odoo" + +#~ msgid "base.config.settings" +#~ msgstr "base.config.settings" diff --git a/auth_admin_passkey/i18n/es_ES.po b/auth_admin_passkey/i18n/es_ES.po new file mode 100644 index 0000000000..b0a0cd76ce --- /dev/null +++ b/auth_admin_passkey/i18n/es_ES.po @@ -0,0 +1,49 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_admin_passkey +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: server-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-01-12 03:50+0000\n" +"PO-Revision-Date: 2015-09-18 13:53+0000\n" +"Last-Translator: <>\n" +"Language-Team: Spanish (Spain) (http://www.transifex.com/oca/OCA-server-" +"tools-8-0/language/es_ES/)\n" +"Language: es_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_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_res_users__block_admin_passkey +msgid "Block Admin Passkey" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:50 +#, python-format +msgid "Passkey used" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:51 +#, python-format +msgid "" +"System Administrator user used his passkey to login with %(login)s.\n" +"\n" +"\n" +"\n" +"Technicals informations belows : \n" +"\n" +"- Login date : %(login_date)s\n" +"\n" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_res_users +msgid "Users" +msgstr "Usuarios" diff --git a/auth_admin_passkey/i18n/fi.po b/auth_admin_passkey/i18n/fi.po new file mode 100644 index 0000000000..b234b7b526 --- /dev/null +++ b/auth_admin_passkey/i18n/fi.po @@ -0,0 +1,49 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_admin_passkey +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: server-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-04-14 07:01+0000\n" +"PO-Revision-Date: 2016-04-04 11:03+0000\n" +"Last-Translator: Jarmo Kortetjärvi \n" +"Language-Team: Finnish (http://www.transifex.com/oca/OCA-server-tools-8-0/" +"language/fi/)\n" +"Language: fi\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_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_res_users__block_admin_passkey +msgid "Block Admin Passkey" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:50 +#, python-format +msgid "Passkey used" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:51 +#, python-format +msgid "" +"System Administrator user used his passkey to login with %(login)s.\n" +"\n" +"\n" +"\n" +"Technicals informations belows : \n" +"\n" +"- Login date : %(login_date)s\n" +"\n" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_res_users +msgid "Users" +msgstr "Käyttäjät" diff --git a/auth_admin_passkey/i18n/fr.po b/auth_admin_passkey/i18n/fr.po new file mode 100644 index 0000000000..67de9e9c34 --- /dev/null +++ b/auth_admin_passkey/i18n/fr.po @@ -0,0 +1,114 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_admin_passkey +# +# Translators: +# OCA Transbot , 2017 +# Nicolas JEUDY , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-01 02:09+0000\n" +"PO-Revision-Date: 2021-10-15 14:31+0000\n" +"Last-Translator: Yann Papouin \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" +"X-Generator: Weblate 4.3.2\n" + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_res_users__block_admin_passkey +msgid "Block Admin Passkey" +msgstr "Bloquer la clé d’accès de l’administrateur" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:50 +#, python-format +msgid "Passkey used" +msgstr "Clé d’accès utilisée" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:51 +#, python-format +msgid "" +"System Administrator user used his passkey to login with %(login)s.\n" +"\n" +"\n" +"\n" +"Technicals informations belows : \n" +"\n" +"- Login date : %(login_date)s\n" +"\n" +msgstr "" +"L’administrateur système a utilisé sa clé d’accès pour se connecter avec " +"%(login)s.\n" +"\n" +"\n" +"\n" +"Informations techniques ci-dessous : \n" +"\n" +"- Date de connexion : %(login_date)s\n" +"\n" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_res_users +msgid "Users" +msgstr "Utilisateurs" + +#~ msgid "
User with login '%s' has the same password as you.
" +#~ msgstr "" +#~ "
L'utilisateur dont l'identifiant est '%s' a le même mot de passe que "
+#~ "vous.
" + +#~ msgid "" +#~ "Admin user used his passkey to login with '%s'.\n" +#~ "\n" +#~ "\n" +#~ "\n" +#~ "Technicals informations belows : \n" +#~ "\n" +#~ "- Login date : %s\n" +#~ "\n" +#~ msgstr "" +#~ "L'administrateur a utilisé son mot de passe \"bris de glace\" pour " +#~ "s'identifier avec l'identifiant '%s'.\n" +#~ "\n" +#~ "\n" +#~ "\n" +#~ "Informations techniques ci-dessous : \n" +#~ "\n" +#~ "- Date d'authentification : %s\n" +#~ "\n" + +#~ msgid "Passkey" +#~ msgstr "Mot de passe \"bris de glace\"" + +#~ msgid "Send email to admin user." +#~ msgstr "Envoyer un email à l'administrateur." + +#~ msgid "Send email to user." +#~ msgstr "Envoyer un email à l'utilisateur." + +#~ msgid "" +#~ "When the administrator use his password to login in with a different " +#~ "account, Odoo will send an email to the account user." +#~ msgstr "" +#~ "Quand l'administrateur utilise son mot de passe pour s'authentifier avec " +#~ "un compte différent, Odoo lui enverra un mail." + +#~ msgid "" +#~ "When the administrator use his password to login in with a different " +#~ "account, Odoo will send an email to the admin user." +#~ msgstr "" +#~ "Quand l'administrateur utilise son mot de passe pour s'authentifier avec " +#~ "un compte différent, Odoo enverra un mail à l'utilisateur." + +#~ msgid "[WARNING] Odoo Security Risk" +#~ msgstr "[WARNING] Faille de sécurité sur Odoo" + +#~ msgid "base.config.settings" +#~ msgstr "base.config.settings" diff --git a/auth_admin_passkey/i18n/fr_CH.po b/auth_admin_passkey/i18n/fr_CH.po new file mode 100644 index 0000000000..128c9640a7 --- /dev/null +++ b/auth_admin_passkey/i18n/fr_CH.po @@ -0,0 +1,49 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_admin_passkey +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: server-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-11-30 14:52+0000\n" +"PO-Revision-Date: 2015-09-18 13:53+0000\n" +"Last-Translator: <>\n" +"Language-Team: French (Switzerland) (http://www.transifex.com/oca/OCA-server-" +"tools-8-0/language/fr_CH/)\n" +"Language: fr_CH\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_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_res_users__block_admin_passkey +msgid "Block Admin Passkey" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:50 +#, python-format +msgid "Passkey used" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:51 +#, python-format +msgid "" +"System Administrator user used his passkey to login with %(login)s.\n" +"\n" +"\n" +"\n" +"Technicals informations belows : \n" +"\n" +"- Login date : %(login_date)s\n" +"\n" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_res_users +msgid "Users" +msgstr "Utilisateurs" diff --git a/auth_admin_passkey/i18n/fr_FR.po b/auth_admin_passkey/i18n/fr_FR.po new file mode 100644 index 0000000000..c4f8f46fd9 --- /dev/null +++ b/auth_admin_passkey/i18n/fr_FR.po @@ -0,0 +1,50 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_admin_passkey +# +# Translators: +# Aurel , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: Aurel , 2017\n" +"Language-Team: French (France) (https://www.transifex.com/oca/teams/23907/" +"fr_FR/)\n" +"Language: fr_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_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_res_users__block_admin_passkey +msgid "Block Admin Passkey" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:50 +#, python-format +msgid "Passkey used" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:51 +#, python-format +msgid "" +"System Administrator user used his passkey to login with %(login)s.\n" +"\n" +"\n" +"\n" +"Technicals informations belows : \n" +"\n" +"- Login date : %(login_date)s\n" +"\n" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_res_users +msgid "Users" +msgstr "Utilsateurs" diff --git a/auth_admin_passkey/i18n/hr.po b/auth_admin_passkey/i18n/hr.po new file mode 100644 index 0000000000..bf83afddd5 --- /dev/null +++ b/auth_admin_passkey/i18n/hr.po @@ -0,0 +1,103 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_admin_passkey +# +# Translators: +# OCA Transbot , 2017 +# Bole , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-02 18:39+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_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_res_users__block_admin_passkey +msgid "Block Admin Passkey" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:50 +#, python-format +msgid "Passkey used" +msgstr "Korišten ključ" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:51 +#, python-format +msgid "" +"System Administrator user used his passkey to login with %(login)s.\n" +"\n" +"\n" +"\n" +"Technicals informations belows : \n" +"\n" +"- Login date : %(login_date)s\n" +"\n" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_res_users +msgid "Users" +msgstr "Korisnici" + +#~ msgid "
User with login '%s' has the same password as you.
" +#~ msgstr "
Korisnik '%s' ima istu zaporku kao i Vi.
" + +#~ msgid "" +#~ "Admin user used his passkey to login with '%s'.\n" +#~ "\n" +#~ "\n" +#~ "\n" +#~ "Technicals informations belows : \n" +#~ "\n" +#~ "- Login date : %s\n" +#~ "\n" +#~ msgstr "" +#~ "Administrator je koristio svoj ključ za prijavu kao '%s'.\n" +#~ "\n" +#~ "\n" +#~ "\n" +#~ "Tehničke informacije : \n" +#~ "\n" +#~ "- Datum prijave : %s\n" +#~ "\n" + +#~ msgid "Passkey" +#~ msgstr "Ključ" + +#~ msgid "Send email to admin user." +#~ msgstr "Pošalji mail administratoru." + +#~ msgid "Send email to user." +#~ msgstr "Pošalji mail korisniku." + +#~ msgid "" +#~ "When the administrator use his password to login in with a different " +#~ "account, Odoo will send an email to the account user." +#~ msgstr "" +#~ "Kas administrator koristi svoju zaporku za prijavu kao drugi korisnik, " +#~ "odoo će korisniku poslati email obavijest o tome." + +#~ msgid "" +#~ "When the administrator use his password to login in with a different " +#~ "account, Odoo will send an email to the admin user." +#~ msgstr "" +#~ "Kas administrator koristi svoju zaporku za prijavu kao drugi korisnik, " +#~ "odoo će administratoru poslati email obavijest o tome." + +#~ msgid "[WARNING] Odoo Security Risk" +#~ msgstr "[UPOZORENJE] Odoo sigurnosni rizik" + +#~ msgid "base.config.settings" +#~ msgstr "base.config.settings" diff --git a/auth_admin_passkey/i18n/hr_HR.po b/auth_admin_passkey/i18n/hr_HR.po new file mode 100644 index 0000000000..3cef799a2a --- /dev/null +++ b/auth_admin_passkey/i18n/hr_HR.po @@ -0,0 +1,50 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_admin_passkey +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: server-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-01-12 03:50+0000\n" +"PO-Revision-Date: 2017-01-11 15:38+0000\n" +"Last-Translator: OCA Transbot \n" +"Language-Team: Croatian (Croatia) (http://www.transifex.com/oca/OCA-server-" +"tools-8-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_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_res_users__block_admin_passkey +msgid "Block Admin Passkey" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:50 +#, python-format +msgid "Passkey used" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:51 +#, python-format +msgid "" +"System Administrator user used his passkey to login with %(login)s.\n" +"\n" +"\n" +"\n" +"Technicals informations belows : \n" +"\n" +"- Login date : %(login_date)s\n" +"\n" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_res_users +msgid "Users" +msgstr "Korisnici" diff --git a/auth_admin_passkey/i18n/it.po b/auth_admin_passkey/i18n/it.po new file mode 100644 index 0000000000..c763067b61 --- /dev/null +++ b/auth_admin_passkey/i18n/it.po @@ -0,0 +1,55 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_admin_passkey +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Italian (https://www.transifex.com/oca/teams/23907/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_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_res_users__block_admin_passkey +msgid "Block Admin Passkey" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:50 +#, python-format +msgid "Passkey used" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:51 +#, python-format +msgid "" +"System Administrator user used his passkey to login with %(login)s.\n" +"\n" +"\n" +"\n" +"Technicals informations belows : \n" +"\n" +"- Login date : %(login_date)s\n" +"\n" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_res_users +msgid "Users" +msgstr "Utenti" + +#~ msgid "Send email to admin user." +#~ msgstr "Invia email all'utente amministratore." + +#~ msgid "Send email to user." +#~ msgstr "Invia email all'utente." diff --git a/auth_admin_passkey/i18n/nl.po b/auth_admin_passkey/i18n/nl.po new file mode 100644 index 0000000000..298148bc5b --- /dev/null +++ b/auth_admin_passkey/i18n/nl.po @@ -0,0 +1,49 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_admin_passkey +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: server-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-01-12 03:50+0000\n" +"PO-Revision-Date: 2015-09-18 13:53+0000\n" +"Last-Translator: <>\n" +"Language-Team: Dutch (http://www.transifex.com/oca/OCA-server-tools-8-0/" +"language/nl/)\n" +"Language: nl\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_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_res_users__block_admin_passkey +msgid "Block Admin Passkey" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:50 +#, python-format +msgid "Passkey used" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:51 +#, python-format +msgid "" +"System Administrator user used his passkey to login with %(login)s.\n" +"\n" +"\n" +"\n" +"Technicals informations belows : \n" +"\n" +"- Login date : %(login_date)s\n" +"\n" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_res_users +msgid "Users" +msgstr "Gebruikers" diff --git a/auth_admin_passkey/i18n/nl_NL.po b/auth_admin_passkey/i18n/nl_NL.po new file mode 100644 index 0000000000..6dcec3dd80 --- /dev/null +++ b/auth_admin_passkey/i18n/nl_NL.po @@ -0,0 +1,56 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_admin_passkey +# +# Translators: +# Peter Hageman , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-01 02:09+0000\n" +"PO-Revision-Date: 2017-12-01 02:09+0000\n" +"Last-Translator: Peter Hageman , 2017\n" +"Language-Team: Dutch (Netherlands) (https://www.transifex.com/oca/" +"teams/23907/nl_NL/)\n" +"Language: nl_NL\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_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_res_users__block_admin_passkey +msgid "Block Admin Passkey" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:50 +#, python-format +msgid "Passkey used" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:51 +#, python-format +msgid "" +"System Administrator user used his passkey to login with %(login)s.\n" +"\n" +"\n" +"\n" +"Technicals informations belows : \n" +"\n" +"- Login date : %(login_date)s\n" +"\n" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_res_users +msgid "Users" +msgstr "Gebruikers" + +#~ msgid "Send email to user." +#~ msgstr "Stuur email naar gebruiker." + +#~ msgid "base.config.settings" +#~ msgstr "base.config.settings" diff --git a/auth_admin_passkey/i18n/pt.po b/auth_admin_passkey/i18n/pt.po new file mode 100644 index 0000000000..5576c47981 --- /dev/null +++ b/auth_admin_passkey/i18n/pt.po @@ -0,0 +1,98 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_admin_passkey +# +# Translators: +# Pedro Castro Silva , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2018-07-30 17:15+0000\n" +"Last-Translator: Pedro Castro Silva \n" +"Language-Team: Portuguese (https://www.transifex.com/oca/teams/23907/pt/)\n" +"Language: pt\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.1.1\n" + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_res_users__block_admin_passkey +msgid "Block Admin Passkey" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:50 +#, python-format +msgid "Passkey used" +msgstr "Chave-mestra utilizada" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:51 +#, python-format +msgid "" +"System Administrator user used his passkey to login with %(login)s.\n" +"\n" +"\n" +"\n" +"Technicals informations belows : \n" +"\n" +"- Login date : %(login_date)s\n" +"\n" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_res_users +msgid "Users" +msgstr "Utilizadores" + +#~ msgid "
User with login '%s' has the same password as you.
" +#~ msgstr "
A palavra-passe do utilizador '%s' é igual à sua.
" + +#~ msgid "" +#~ "Admin user used his passkey to login with '%s'.\n" +#~ "\n" +#~ "\n" +#~ "\n" +#~ "Technicals informations belows : \n" +#~ "\n" +#~ "- Login date : %s\n" +#~ "\n" +#~ msgstr "" +#~ "O utilizador Admin usou a sua chave-mestra para iniciar sessão com '%s'.\n" +#~ "\n" +#~ "\n" +#~ "\n" +#~ "Informação técnica em baixo : \n" +#~ "\n" +#~ "- Data de início de sessão : %s\n" +#~ "\n" + +#~ msgid "Passkey" +#~ msgstr "Chave-mestra" + +#~ msgid "Send email to admin user." +#~ msgstr "Enviar email para o utilizador admin." + +#~ msgid "Send email to user." +#~ msgstr "Enviar email para o utilizador." + +#~ msgid "" +#~ "When the administrator use his password to login in with a different " +#~ "account, Odoo will send an email to the account user." +#~ msgstr "" +#~ "Quando o administrador usar a sua palavra-passe para iniciar sessão com " +#~ "uma conta diferente, o Odoo enviará um email para o utilizador da conta." + +#~ msgid "" +#~ "When the administrator use his password to login in with a different " +#~ "account, Odoo will send an email to the admin user." +#~ msgstr "" +#~ "Quando o administrador usar a sua palavra-passe para iniciar sessão com " +#~ "uma conta diferente, o Odoo enviará um email para o utilizador admin." + +#~ msgid "[WARNING] Odoo Security Risk" +#~ msgstr "[AVISO] Risco de Segurança do Odoo" diff --git a/auth_admin_passkey/i18n/pt_BR.po b/auth_admin_passkey/i18n/pt_BR.po new file mode 100644 index 0000000000..45329acfee --- /dev/null +++ b/auth_admin_passkey/i18n/pt_BR.po @@ -0,0 +1,102 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_admin_passkey +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2019-11-24 19:58+0000\n" +"Last-Translator: Rodrigo Macedo \n" +"Language-Team: Portuguese (Brazil) (https://www.transifex.com/oca/" +"teams/23907/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_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_res_users__block_admin_passkey +msgid "Block Admin Passkey" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:50 +#, python-format +msgid "Passkey used" +msgstr "Passkey usada" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:51 +#, python-format +msgid "" +"System Administrator user used his passkey to login with %(login)s.\n" +"\n" +"\n" +"\n" +"Technicals informations belows : \n" +"\n" +"- Login date : %(login_date)s\n" +"\n" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_res_users +msgid "Users" +msgstr "Usuários" + +#~ msgid "
User with login '%s' has the same password as you.
" +#~ msgstr "
Usuário com login '%s' tem a mesma senha que você.
" + +#~ msgid "" +#~ "Admin user used his passkey to login with '%s'.\n" +#~ "\n" +#~ "\n" +#~ "\n" +#~ "Technicals informations belows : \n" +#~ "\n" +#~ "- Login date : %s\n" +#~ "\n" +#~ msgstr "" +#~ "O usuário administrador usou sua senha para fazer login com '%s'.\n" +#~ "\n" +#~ "\n" +#~ "\n" +#~ "Informações técnicas abaixo:\n" +#~ "\n" +#~ "- Data de login : %s\n" +#~ "\n" + +#~ msgid "Passkey" +#~ msgstr "Chave de acesso" + +#~ msgid "Send email to admin user." +#~ msgstr "Enviar e-mail para usuário administrador." + +#~ msgid "Send email to user." +#~ msgstr "Enviar email para usuário." + +#~ msgid "" +#~ "When the administrator use his password to login in with a different " +#~ "account, Odoo will send an email to the account user." +#~ msgstr "" +#~ "Quando o administrador usa sua senha para dar login com uma conta " +#~ "diferente, OPENERP irá enviar um email para a conta do usuário." + +#~ msgid "" +#~ "When the administrator use his password to login in with a different " +#~ "account, Odoo will send an email to the admin user." +#~ msgstr "" +#~ "Quando o administrador usa sua senha para dar login com uma conta " +#~ "diferente, OPENERP irá enviar um email para a conta do administrador." + +#~ msgid "[WARNING] Odoo Security Risk" +#~ msgstr "[AVISO] Odoo Risco de Segurança" + +#~ msgid "base.config.settings" +#~ msgstr "base.config.settings" diff --git a/auth_admin_passkey/i18n/ro.po b/auth_admin_passkey/i18n/ro.po new file mode 100644 index 0000000000..7036703762 --- /dev/null +++ b/auth_admin_passkey/i18n/ro.po @@ -0,0 +1,50 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_admin_passkey +# +# Translators: +# Daniel Schweiger , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+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_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_res_users__block_admin_passkey +msgid "Block Admin Passkey" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:50 +#, python-format +msgid "Passkey used" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:51 +#, python-format +msgid "" +"System Administrator user used his passkey to login with %(login)s.\n" +"\n" +"\n" +"\n" +"Technicals informations belows : \n" +"\n" +"- Login date : %(login_date)s\n" +"\n" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_res_users +msgid "Users" +msgstr "Utilizatori" diff --git a/auth_admin_passkey/i18n/sl.po b/auth_admin_passkey/i18n/sl.po new file mode 100644 index 0000000000..affd8b6045 --- /dev/null +++ b/auth_admin_passkey/i18n/sl.po @@ -0,0 +1,98 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_admin_passkey +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Slovenian (https://www.transifex.com/oca/teams/23907/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_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_res_users__block_admin_passkey +msgid "Block Admin Passkey" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:50 +#, python-format +msgid "Passkey used" +msgstr "Uporabljen prijavni ključ" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:51 +#, python-format +msgid "" +"System Administrator user used his passkey to login with %(login)s.\n" +"\n" +"\n" +"\n" +"Technicals informations belows : \n" +"\n" +"- Login date : %(login_date)s\n" +"\n" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_res_users +msgid "Users" +msgstr "Uporabniki" + +#~ msgid "
User with login '%s' has the same password as you.
" +#~ msgstr "
Uporabnik '%s' ima enako geslo kot vi.
" + +#~ msgid "" +#~ "Admin user used his passkey to login with '%s'.\n" +#~ "\n" +#~ "\n" +#~ "\n" +#~ "Technicals informations belows : \n" +#~ "\n" +#~ "- Login date : %s\n" +#~ "\n" +#~ msgstr "" +#~ "Administrator je uporabil svoj prijavni ključ za prijavo z '%s'.\n" +#~ "\n" +#~ "\n" +#~ "\n" +#~ "Tehnični podatki : \n" +#~ "\n" +#~ "- Datum prijave : %s\n" +#~ "\n" + +#~ msgid "Passkey" +#~ msgstr "Prijavni ključ" + +#~ msgid "Send email to admin user." +#~ msgstr "Pošlji e-pošto administratorju." + +#~ msgid "Send email to user." +#~ msgstr "Pošlji e-pošto uporabniku." + +#~ msgid "" +#~ "When the administrator use his password to login in with a different " +#~ "account, Odoo will send an email to the account user." +#~ msgstr "" +#~ "Ko administrator uporabi svoje geslo za prijavo v drug račun, bo Odoo " +#~ "poslal e-pošto uporabniku računa." + +#~ msgid "" +#~ "When the administrator use his password to login in with a different " +#~ "account, Odoo will send an email to the admin user." +#~ msgstr "" +#~ "Ko administrator uporabi svoje geslo za prijavo v drug račun, bo Odoo " +#~ "poslal e-pošto administratorju." + +#~ msgid "[WARNING] Odoo Security Risk" +#~ msgstr "[OPOZORILO] Odoo varnostno tveganje" diff --git a/auth_admin_passkey/i18n/tr.po b/auth_admin_passkey/i18n/tr.po new file mode 100644 index 0000000000..1320a9b2cd --- /dev/null +++ b/auth_admin_passkey/i18n/tr.po @@ -0,0 +1,97 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_admin_passkey +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-01 02:43+0000\n" +"PO-Revision-Date: 2017-08-01 02:43+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Turkish (https://www.transifex.com/oca/teams/23907/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_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_res_users__block_admin_passkey +msgid "Block Admin Passkey" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:50 +#, python-format +msgid "Passkey used" +msgstr "Kullanılan parola" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:51 +#, python-format +msgid "" +"System Administrator user used his passkey to login with %(login)s.\n" +"\n" +"\n" +"\n" +"Technicals informations belows : \n" +"\n" +"- Login date : %(login_date)s\n" +"\n" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_res_users +msgid "Users" +msgstr "Kullanıcılar" + +#~ msgid "
User with login '%s' has the same password as you.
" +#~ msgstr "
 '%s' kullanıcısının şifresi sizinkiyle aynı.
" + +#~ msgid "" +#~ "Admin user used his passkey to login with '%s'.\n" +#~ "\n" +#~ "\n" +#~ "\n" +#~ "Technicals informations belows : \n" +#~ "\n" +#~ "- Login date : %s\n" +#~ "\n" +#~ msgstr "" +#~ "Yönetici şifresini kullanarak '%s'. kullanıcısıyla giriş yaptı.\n" +#~ "\n" +#~ "\n" +#~ "\n" +#~ "Teknik detaylar aşağıda : \n" +#~ "\n" +#~ "- Giriş zamanı : %s\n" +#~ "\n" + +#~ msgid "Passkey" +#~ msgstr "Parola" + +#~ msgid "Send email to admin user." +#~ msgstr "Yöneticiye e-posta gönder." + +#~ msgid "Send email to user." +#~ msgstr "Kullanıcıya e-posta gönder." + +#~ msgid "" +#~ "When the administrator use his password to login in with a different " +#~ "account, Odoo will send an email to the account user." +#~ msgstr "" +#~ "Yönetici farklı bir hesaba şifresiyle giriş yaparsa. Odoo hesap sahibine " +#~ "e-posta gönderecek." + +#~ msgid "" +#~ "When the administrator use his password to login in with a different " +#~ "account, Odoo will send an email to the admin user." +#~ msgstr "" +#~ "Yönetici şifresiyle farklı bir kullanıcının hesabına giriş yaparsa, Odoo " +#~ "yöneticiye e-posta gönderir." + +#~ msgid "[WARNING] Odoo Security Risk" +#~ msgstr "[UYARI] Odoo Güvenlik Riski" diff --git a/auth_admin_passkey/i18n/tr_TR.po b/auth_admin_passkey/i18n/tr_TR.po new file mode 100644 index 0000000000..bff14f8db7 --- /dev/null +++ b/auth_admin_passkey/i18n/tr_TR.po @@ -0,0 +1,49 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_admin_passkey +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: server-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-12-31 08:34+0000\n" +"PO-Revision-Date: 2015-09-18 13:53+0000\n" +"Last-Translator: <>\n" +"Language-Team: Turkish (Turkey) (http://www.transifex.com/oca/OCA-server-" +"tools-8-0/language/tr_TR/)\n" +"Language: tr_TR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_res_users__block_admin_passkey +msgid "Block Admin Passkey" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:50 +#, python-format +msgid "Passkey used" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:51 +#, python-format +msgid "" +"System Administrator user used his passkey to login with %(login)s.\n" +"\n" +"\n" +"\n" +"Technicals informations belows : \n" +"\n" +"- Login date : %(login_date)s\n" +"\n" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_res_users +msgid "Users" +msgstr "Kullanıcılar" diff --git a/auth_admin_passkey/i18n/zh_CN.po b/auth_admin_passkey/i18n/zh_CN.po new file mode 100644 index 0000000000..d62c286dcc --- /dev/null +++ b/auth_admin_passkey/i18n/zh_CN.po @@ -0,0 +1,49 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_admin_passkey +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: server-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-01-12 03:50+0000\n" +"PO-Revision-Date: 2015-09-18 13:53+0000\n" +"Last-Translator: <>\n" +"Language-Team: Chinese (China) (http://www.transifex.com/oca/OCA-server-" +"tools-8-0/language/zh_CN/)\n" +"Language: zh_CN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_res_users__block_admin_passkey +msgid "Block Admin Passkey" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:50 +#, python-format +msgid "Passkey used" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:51 +#, python-format +msgid "" +"System Administrator user used his passkey to login with %(login)s.\n" +"\n" +"\n" +"\n" +"Technicals informations belows : \n" +"\n" +"- Login date : %(login_date)s\n" +"\n" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_res_users +msgid "Users" +msgstr "用户" diff --git a/auth_admin_passkey/models/__init__.py b/auth_admin_passkey/models/__init__.py new file mode 100644 index 0000000000..8835165330 --- /dev/null +++ b/auth_admin_passkey/models/__init__.py @@ -0,0 +1 @@ +from . import res_users diff --git a/auth_admin_passkey/models/res_users.py b/auth_admin_passkey/models/res_users.py new file mode 100644 index 0000000000..69ad9cef1d --- /dev/null +++ b/auth_admin_passkey/models/res_users.py @@ -0,0 +1,72 @@ +# Copyright (C) 2013-Today GRAP (http://www.grap.coop) +# @author Sylvain LE GAL (https://twitter.com/legalsylvain) +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html + +import logging +from datetime import datetime + +from odoo import SUPERUSER_ID, _, api, exceptions, fields, models +from odoo.tools import config + +logger = logging.getLogger(__name__) + + +class ResUsers(models.Model): + _inherit = "res.users" + + block_admin_passkey = fields.Boolean(string="Block Admin Passkey") + + @api.model + def _send_email_passkey(self, login_user): + """ Send a email to the system administrator and / or the user + to inform passkey use.""" + MailMail = self.env["mail.mail"].sudo() + + admin_user = self.sudo().browse(SUPERUSER_ID) + + send_to_user = config.get("auth_admin_passkey_send_to_user", True) + sysadmin_email = config.get("auth_admin_passkey_sysadmin_email", False) + + mails = [] + if sysadmin_email: + lang = config.get("auth_admin_passkey_sysadmin_lang", admin_user.lang) + mails.append({"email": sysadmin_email, "lang": lang}) + if send_to_user and login_user.email: + mails.append({"email": login_user.email, "lang": login_user.lang}) + for mail in mails: + subject, body_html = self._prepare_email_passkey(login_user) + + MailMail.create( + {"email_to": mail["email"], "subject": subject, "body_html": body_html} + ) + + @api.model + def _prepare_email_passkey(self, login_user): + subject = _("Passkey used") + body = _( + "System Administrator user used his passkey to login" + " with %(login)s." + "\n\n\n\n" + "Technicals informations belows : \n\n" + "- Login date : %(login_date)s\n\n" + ) % { + "login": login_user.login, + "login_date": datetime.now().strftime("%Y-%m-%d %H:%M:%S"), + } + return subject, "
%s
" % body + + def _check_credentials(self, password): + try: + super(ResUsers, self)._check_credentials(password) + + except exceptions.AccessDenied: + # Just be sure that parent methods aren't wrong + user = self.sudo().search([("id", "=", self._uid)], limit=1) + if not user or user.block_admin_passkey: + raise + + file_password = config.get("auth_admin_passkey_password", False) + if password and file_password == password: + self._send_email_passkey(user) + else: + raise diff --git a/auth_admin_passkey/readme/CONFIGURE.rst b/auth_admin_passkey/readme/CONFIGURE.rst new file mode 100644 index 0000000000..2aa877434e --- /dev/null +++ b/auth_admin_passkey/readme/CONFIGURE.rst @@ -0,0 +1,35 @@ + +To enable this feature, once the module installed, you have to add the +following keys in your ``odoo.cfg`` configuration file. + +* ``auth_admin_passkey_password``. The password that allows user to logging in + with any login. If not set, the feature is disabled. + +* ``auth_admin_passkey_send_to_user`` (default True), if enabled, an email + will be send to the user, if his account has been used by the + System Administrator. + +* ``auth_admin_passkey_sysadmin_email``. If set, an email will be sent to this + mail. + +* ``auth_admin_passkey_sysadmin_lang``. the language (exemple en_US), used for + the mail sent to the System Administrator. If not set, the language of the + SUPERUSER_ID user will be used. + + +**typical Dev / Test configuration section** + +No keys to add. + +**typical Production configuration section** + + +.. code-block:: ini + + auth_admin_passkey_password = PASSKEY_PASSWORD + auth_admin_passkey_send_to_user = True + auth_admin_passkey_sysadmin_email = SYSADMIN_PASSWORD + auth_admin_passkey_sysadmin_lang = SYSADMIN_LANG + +* To avoid the usage of the admin passkey with some users go to the User record + and check the "Block Admin Passkey" checkbox. diff --git a/auth_admin_passkey/readme/CONTRIBUTORS.rst b/auth_admin_passkey/readme/CONTRIBUTORS.rst new file mode 100644 index 0000000000..85532cb55b --- /dev/null +++ b/auth_admin_passkey/readme/CONTRIBUTORS.rst @@ -0,0 +1,4 @@ +* Eugen Don +* Alexandre Papin (https://twitter.com/Fenkiou) +* Sylvain LE GAL (https://twitter.com/legalsylvain) +* Manuel Regidor diff --git a/auth_admin_passkey/readme/DESCRIPTION.rst b/auth_admin_passkey/readme/DESCRIPTION.rst new file mode 100644 index 0000000000..a42b7860fb --- /dev/null +++ b/auth_admin_passkey/readme/DESCRIPTION.rst @@ -0,0 +1,7 @@ +This module extends the functionality of users module to support loging in +with an extra system administrator password in other user accounts. + +* System Administrator has now the possibility to login in with any login + +* According to the configuration, Odoo will send a mail to user and admin to + indicate them diff --git a/auth_admin_passkey/static/description/icon.png b/auth_admin_passkey/static/description/icon.png new file mode 100644 index 0000000000..490879d9f4 Binary files /dev/null and b/auth_admin_passkey/static/description/icon.png differ diff --git a/auth_admin_passkey/static/description/index.html b/auth_admin_passkey/static/description/index.html new file mode 100644 index 0000000000..3a0af8fd60 --- /dev/null +++ b/auth_admin_passkey/static/description/index.html @@ -0,0 +1,461 @@ + + + + + + +Authentification - System Administrator Passkey + + + +
+

Authentification - System Administrator Passkey

+ + +

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

+

This module extends the functionality of users module to support loging in +with an extra system administrator password in other user accounts.

+
    +
  • System Administrator has now the possibility to login in with any login
  • +
  • According to the configuration, Odoo will send a mail to user and admin to +indicate them
  • +
+

Table of contents

+ +
+

Configuration

+

To enable this feature, once the module installed, you have to add the +following keys in your odoo.cfg configuration file.

+
    +
  • auth_admin_passkey_password. The password that allows user to logging in +with any login. If not set, the feature is disabled.
  • +
  • auth_admin_passkey_send_to_user (default True), if enabled, an email +will be send to the user, if his account has been used by the +System Administrator.
  • +
  • auth_admin_passkey_sysadmin_email. If set, an email will be sent to this +mail.
  • +
  • auth_admin_passkey_sysadmin_lang. the language (exemple en_US), used for +the mail sent to the System Administrator. If not set, the language of the +SUPERUSER_ID user will be used.
  • +
+

typical Dev / Test configuration section

+

No keys to add.

+

typical Production configuration section

+
+auth_admin_passkey_password = PASSKEY_PASSWORD
+auth_admin_passkey_send_to_user = True
+auth_admin_passkey_sysadmin_email = SYSADMIN_PASSWORD
+auth_admin_passkey_sysadmin_lang = SYSADMIN_LANG
+
+
    +
  • To avoid the usage of the admin passkey with some users go to the User record +and check the “Block Admin Passkey” checkbox.
  • +
+
+
+

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

+
    +
  • GRAP
  • +
+
+
+

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_admin_passkey/tests/__init__.py b/auth_admin_passkey/tests/__init__.py new file mode 100644 index 0000000000..6a2da4dbe6 --- /dev/null +++ b/auth_admin_passkey/tests/__init__.py @@ -0,0 +1,2 @@ +from . import test_auth_admin_passkey +from . import test_ui diff --git a/auth_admin_passkey/tests/test_auth_admin_passkey.py b/auth_admin_passkey/tests/test_auth_admin_passkey.py new file mode 100644 index 0000000000..1c74f37c1c --- /dev/null +++ b/auth_admin_passkey/tests/test_auth_admin_passkey.py @@ -0,0 +1,75 @@ +# Copyright (C) 2013-Today GRAP (http://www.grap.coop) +# @author Sylvain LE GAL (https://twitter.com/legalsylvain) +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html + +from odoo import exceptions +from odoo.tests import common +from odoo.tools import config + + +@common.post_install(True) +class TestAuthAdminPasskey(common.TransactionCase): + """Tests for 'Auth Admin Passkey' Module""" + + def setUp(self): + super(TestAuthAdminPasskey, self).setUp() + + self.ResUsers = self.env["res.users"] + + self.db = self.env.cr.dbname + + self.user_login = "auth_admin_passkey_user" + self.user_login_block_admin_password = "auth_admin_passkey_block" + self.user_password = "Auth_admin_passkey_password*1" + self.sysadmin_passkey = "SysAdminPasskeyPa$$w0rd" + self.bad_password = "Bad_password*000001" + self.bad_login = "bad_login" + + user = self.ResUsers.create( + { + "login": self.user_login, + "password": self.user_password, + "name": "auth_admin_passkey User", + } + ) + user_block_admin_password = self.ResUsers.create( + { + "login": self.user_login_block_admin_password, + "password": self.user_password, + "name": "auth_admin_passkey_block User", + "block_admin_passkey": True, + } + ) + self.user = user.sudo(user) + self.user_block_admin_password = user.sudo(user_block_admin_password) + + def test_01_normal_login_succeed(self): + self.user._check_credentials(self.user_password) + + def test_02_normal_login_fail(self): + with self.assertRaises(exceptions.AccessDenied): + self.user._check_credentials(self.bad_password) + + def test_03_normal_login_passkey_fail(self): + # This should failed, because feature is disabled + config["auth_admin_passkey_password"] = False + with self.assertRaises(exceptions.AccessDenied): + self.user._check_credentials(self.sysadmin_passkey) + + def test_04_normal_login_passkey_succeed(self): + # This should succeed, because feature is enabled + config["auth_admin_passkey_password"] = self.sysadmin_passkey + self.user._check_credentials(self.sysadmin_passkey) + + def test_05_passkey_login_passkey_succeed(self): + """[Bug #1319391] + Test the correct behaviour of login with 'bad_login' / 'admin'""" + with self.assertRaises(exceptions.AccessDenied): + self.ResUsers.authenticate( + self.db, self.bad_login, self.sysadmin_passkey, {} + ) + + def test_06_passkey_block_user(self): + # This should failed, because user has the option blocked + with self.assertRaises(exceptions.AccessDenied): + self.user_block_admin_password._check_credentials(self.sysadmin_passkey) diff --git a/auth_admin_passkey/tests/test_ui.py b/auth_admin_passkey/tests/test_ui.py new file mode 100644 index 0000000000..791f9bd353 --- /dev/null +++ b/auth_admin_passkey/tests/test_ui.py @@ -0,0 +1,139 @@ +# Copyright (C) 2013-Today GRAP (http://www.grap.coop) +# @author Sylvain LE GAL (https://twitter.com/legalsylvain) +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html + +from lxml import html +from werkzeug.test import Client +from werkzeug.wrappers import BaseResponse + +from odoo.service import wsgi_server +from odoo.tests import common +from odoo.tools import config + + +@common.post_install(True) +class TestUI(common.HttpCase): + def setUp(self): + super(TestUI, self).setUp() + + with self.registry.cursor() as test_cursor: + env = self.env(test_cursor) + + self.user_login = "auth_admin_passkey_user" + self.user_password = "Auth_admin_passkey_password*1" + self.sysadmin_passkey = "SysAdminPasskeyPa$$w0rd" + self.bad_password = "Bad_password*000001" + self.bad_login = "bad_login" + + self.user = env["res.users"].create( + { + "login": self.user_login, + "password": self.user_password, + "name": "auth_admin_passkey User", + } + ) + + self.dbname = env.cr.dbname + + self.werkzeug_environ = {"REMOTE_ADDR": "127.0.0.1"} + self.test_client = Client(wsgi_server.application, BaseResponse) + self.test_client.get("/web/session/logout") + + def html_doc(self, response): + """Get an HTML LXML document.""" + return html.fromstring(response.data) + + def csrf_token(self, response): + """Get a valid CSRF token.""" + doc = self.html_doc(response) + return doc.xpath("//input[@name='csrf_token']")[0].get("value") + + def get_request(self, url, data=None): + return self.test_client.get(url, query_string=data, follow_redirects=True) + + def post_request(self, url, data=None): + return self.test_client.post( + url, data=data, follow_redirects=True, environ_base=self.werkzeug_environ + ) + + def test_01_normal_login_succeed(self): + # Our user wants to go to backoffice part of Odoo + response = self.get_request("/web/", data={"db": self.dbname}) + + # He notices that his redirected to login page as not authenticated + self.assertIn("oe_login_form", response.data.decode("utf8")) + + # He needs to enters his credentials and submit the form + data = { + "login": self.user_login, + "password": self.user_password, + "csrf_token": self.csrf_token(response), + "db": self.dbname, + } + response = self.post_request("/web/login/", data=data) + + # He notices that his redirected to backoffice + self.assertNotIn("oe_login_form", response.data.decode("utf8")) + + def test_02_normal_login_fail(self): + # Our user wants to go to backoffice part of Odoo + response = self.get_request("/web/", data={"db": self.dbname}) + + # He notices that he's redirected to login page as not authenticated + self.assertIn("oe_login_form", response.data.decode("utf8")) + + # He needs to enter his credentials and submit the form + data = { + "login": self.user_login, + "password": self.bad_password, + "csrf_token": self.csrf_token(response), + "db": self.dbname, + } + response = self.post_request("/web/login/", data=data) + + # He mistyped his password so he's redirected to login page again + self.assertIn("Wrong login/password", response.data.decode("utf8")) + + def test_03_passkey_login_succeed(self): + # We enable auth_admin_passkey feature + config["auth_admin_passkey_password"] = self.sysadmin_passkey + + # Our passkey user wants to go to backoffice part of Odoo + response = self.get_request("/web/", data={"db": self.dbname}) + + # He notices that he's redirected to login page as not authenticated + self.assertIn("oe_login_form", response.data.decode("utf8")) + + # He needs to enter his credentials and submit the form + data = { + "login": self.user_login, + "password": self.sysadmin_passkey, + "csrf_token": self.csrf_token(response), + "db": self.dbname, + } + response = self.post_request("/web/login/", data=data) + + # He notices that his redirected to backoffice + self.assertNotIn("oe_login_form", response.data.decode("utf8")) + + def test_04_passkey_login_fail(self): + # We disable auth_admin_passkey feature + config["auth_admin_passkey_password"] = False + + # Our passkey user wants to go to backoffice part of Odoo + response = self.get_request("/web/", data={"db": self.dbname}) + + # He notices that he's redirected to login page as not authenticated + self.assertIn("oe_login_form", response.data.decode("utf8")) + + # He needs to enter his credentials and submit the form + data = { + "login": self.user_login, + "password": self.sysadmin_passkey, + "csrf_token": self.csrf_token(response), + "db": self.dbname, + } + response = self.post_request("/web/login/", data=data) + + # Passkey feature is disabled so he's redirected to login page again + self.assertIn("Wrong login/password", response.data.decode("utf8")) diff --git a/auth_admin_passkey/views/res_users_views.xml b/auth_admin_passkey/views/res_users_views.xml new file mode 100644 index 0000000000..16c322d966 --- /dev/null +++ b/auth_admin_passkey/views/res_users_views.xml @@ -0,0 +1,17 @@ + + + + + admin.passkey.view.users.form + res.users + + + + + + + + + + diff --git a/setup/auth_admin_passkey/odoo/addons/auth_admin_passkey b/setup/auth_admin_passkey/odoo/addons/auth_admin_passkey new file mode 120000 index 0000000000..c9a3697367 --- /dev/null +++ b/setup/auth_admin_passkey/odoo/addons/auth_admin_passkey @@ -0,0 +1 @@ +../../../../auth_admin_passkey \ No newline at end of file diff --git a/setup/auth_admin_passkey/setup.py b/setup/auth_admin_passkey/setup.py new file mode 100644 index 0000000000..28c57bb640 --- /dev/null +++ b/setup/auth_admin_passkey/setup.py @@ -0,0 +1,6 @@ +import setuptools + +setuptools.setup( + setup_requires=['setuptools-odoo'], + odoo_addon=True, +)