diff --git a/auth_admin_passkey/README.rst b/auth_admin_passkey/README.rst new file mode 100644 index 0000000000..6eb13c2e0a --- /dev/null +++ b/auth_admin_passkey/README.rst @@ -0,0 +1,94 @@ +================================ +Authentification - Admin Passkey +================================ + +.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png + :target: https://odoo-community.org/page/development-status + :alt: Beta +.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fserver--auth-lightgray.png?logo=github + :target: https://github.com/OCA/server-auth/tree/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/runbot-Try%20me-875A7B.png + :target: https://runbot.odoo-community.org/runbot/251/12.0 + :alt: Try me on Runbot + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module extends the functionality of users module to support loging in with the administrator password +in other user accounts. + +* Administrator has now the possibility to login in with any login; +* By default, Odoo will send a mail to user and admin to indicate them; +* If a user and the admin have the same password, admin will be informed; + +**Table of contents** + +.. contents:: + :local: + +Configuration +============= + +To enable notifications for login attempts, you need to: + +Go to Settings > General Settings. + +Enable the "Send email to admin user" and / or "Send email to user" checkbox + +Usage +===== + +To login into a different user account type in the user name of the account and the password of the administrator at the login screen + +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 smashing 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) + +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..a077194ca4 --- /dev/null +++ b/auth_admin_passkey/__init__.py @@ -0,0 +1,6 @@ +# Copyright (C) 2013-2014 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 . import controllers +from . import models diff --git a/auth_admin_passkey/__manifest__.py b/auth_admin_passkey/__manifest__.py new file mode 100644 index 0000000000..5c04642bdb --- /dev/null +++ b/auth_admin_passkey/__manifest__.py @@ -0,0 +1,22 @@ +# Copyright (C) 2013-2014 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 - Admin Passkey", + "version": "12.0.1.0.0", + "category": "base", + "author": "GRAP,Odoo Community Association (OCA)", + "website": "http://www.grap.coop", + "license": "AGPL-3", + "depends": ["mail", "web"], + "data": [ + "data/ir_config_parameter.xml", + "views/auth_admin_passkey.xml", + "views/res_config_view.xml", + "views/res_users_view.xml", + ], + "application": False, + "installable": True, + "auto_install": False, +} diff --git a/auth_admin_passkey/controllers/__init__.py b/auth_admin_passkey/controllers/__init__.py new file mode 100644 index 0000000000..b07f83c729 --- /dev/null +++ b/auth_admin_passkey/controllers/__init__.py @@ -0,0 +1,4 @@ +# © initOS GmbH 2019 +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from . import main diff --git a/auth_admin_passkey/controllers/main.py b/auth_admin_passkey/controllers/main.py new file mode 100644 index 0000000000..13e27910a8 --- /dev/null +++ b/auth_admin_passkey/controllers/main.py @@ -0,0 +1,61 @@ +# © initOS GmbH 2019 +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import fields, http, _ +from odoo.http import request + +from odoo.addons.web.controllers.main import Home +from ..exceptions import OTPLoginNeeded + + +class AuthAdminPasskey(Home): + @http.route() + def web_login(self, *args, **kwargs): + try: + response = super(AuthAdminPasskey, self).web_login(*args, **kwargs) + except OTPLoginNeeded: + request.session.update({ + 'otp_login_needed': False, + 'login': kwargs.get('login', None), + 'password': kwargs.get('password', None), + }) + return http.local_redirect( + '/auth_admin_passkey/login', + query={'redirect': request.params.get('redirect')}, + keep_hash=True, + ) + + return response + + @http.route( + '/auth_admin_passkey/login', type='http', auth='public', + methods=['GET'], website=True) + def passkey_login_get(self, *args, **kwargs): + return request.render( + 'auth_admin_passkey.otp_login', qcontext=request.params) + + @http.route( + '/auth_admin_passkey/login', type='http', auth='none', + methods=['POST']) + def passkey_login_post(self, *args, **kwargs): + user_model_sudo = request.env['res.users'].sudo() + + user_login = request.session.get('login') + password = request.session.get('password') + user = user_model_sudo.search([('login', '=', user_login)]) + now = fields.Datetime.now() + if user.passkey_otp_expire and now < user.passkey_otp_expire: + otp_code = request.params.get('confirmation_code') + if user.passkey_otp and otp_code == user.passkey_otp: + request.session['admin_passkey_with_otp'] = user.id + request.session.authenticate(request.db, user.login, password) + return http.redirect_with_hash('/web') + + return http.local_redirect( + '/web/login', + query={ + 'redirect': request.params.get('redirect'), + 'error': _('The confirmation code is wrong.'), + }, + keep_hash=True, + ) diff --git a/auth_admin_passkey/data/ir_config_parameter.xml b/auth_admin_passkey/data/ir_config_parameter.xml new file mode 100644 index 0000000000..1a0b2fbd86 --- /dev/null +++ b/auth_admin_passkey/data/ir_config_parameter.xml @@ -0,0 +1,21 @@ + + + + + + auth_admin_passkey.send_to_admin + True + + + + auth_admin_passkey.send_to_user + True + + + + auth_admin_passkey.otp_lifetime + 60 + + + + diff --git a/auth_admin_passkey/exceptions.py b/auth_admin_passkey/exceptions.py new file mode 100644 index 0000000000..97d8e27df3 --- /dev/null +++ b/auth_admin_passkey/exceptions.py @@ -0,0 +1,6 @@ +# © initOS GmbH 2019 +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + + +class OTPLoginNeeded(Exception): + pass diff --git a/auth_admin_passkey/i18n/ar.po b/auth_admin_passkey/i18n/ar.po new file mode 100644 index 0000000000..b66a51446a --- /dev/null +++ b/auth_admin_passkey/i18n/ar.po @@ -0,0 +1,91 @@ +# 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 +#: code:addons/auth_admin_passkey/models/res_users.py:64 +#, python-format +msgid "
User with login '%s' has the same password as you.
" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:39 +#, python-format +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 "" + +#. module: auth_admin_passkey +#: model:ir.ui.view,arch_db:auth_admin_passkey.view_res_config_settings +msgid "Passkey" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:38 +#, python-format +msgid "Passkey used" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_admin +msgid "Send email to admin user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_user +msgid "Send email to user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_res_users +msgid "Users" +msgstr "المستخدمون" + +#. module: auth_admin_passkey +#: model:ir.model.fields,help:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_user +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the account user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model.fields,help:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_admin +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the admin user." +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:62 +#, python-format +msgid "[WARNING] Odoo Security Risk" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_base_config_settings +msgid "base.config.settings" +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..ea7dcd2137 --- /dev/null +++ b/auth_admin_passkey/i18n/auth_admin_passkey.pot @@ -0,0 +1,82 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_admin_passkey +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.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 +#: code:addons/auth_admin_passkey/models/res_users.py:64 +#, python-format +msgid "
User with login '%s' has the same password as you.
" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:39 +#, python-format +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 "" + +#. module: auth_admin_passkey +#: model:ir.ui.view,arch_db:auth_admin_passkey.view_res_config_settings +msgid "Passkey" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:38 +#, python-format +msgid "Passkey used" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_admin +msgid "Send email to admin user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_user +msgid "Send email to user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_res_users +msgid "Users" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model.fields,help:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_user +msgid "When the administrator use his password to login in with a different account, Odoo will send an email to the account user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model.fields,help:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_admin +msgid "When the administrator use his password to login in with a different account, Odoo will send an email to the admin user." +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:62 +#, python-format +msgid "[WARNING] Odoo Security Risk" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_base_config_settings +msgid "base.config.settings" +msgstr "" + diff --git a/auth_admin_passkey/i18n/ca.po b/auth_admin_passkey/i18n/ca.po new file mode 100644 index 0000000000..6a8db3d289 --- /dev/null +++ b/auth_admin_passkey/i18n/ca.po @@ -0,0 +1,90 @@ +# 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 +#: code:addons/auth_admin_passkey/models/res_users.py:64 +#, python-format +msgid "
User with login '%s' has the same password as you.
" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:39 +#, python-format +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 "" + +#. module: auth_admin_passkey +#: model:ir.ui.view,arch_db:auth_admin_passkey.view_res_config_settings +msgid "Passkey" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:38 +#, python-format +msgid "Passkey used" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_admin +msgid "Send email to admin user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_user +msgid "Send email to user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_res_users +msgid "Users" +msgstr "Usuaris" + +#. module: auth_admin_passkey +#: model:ir.model.fields,help:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_user +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the account user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model.fields,help:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_admin +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the admin user." +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:62 +#, python-format +msgid "[WARNING] Odoo Security Risk" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_base_config_settings +msgid "base.config.settings" +msgstr "" diff --git a/auth_admin_passkey/i18n/da.po b/auth_admin_passkey/i18n/da.po new file mode 100644 index 0000000000..06e1bc5ec3 --- /dev/null +++ b/auth_admin_passkey/i18n/da.po @@ -0,0 +1,90 @@ +# 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 +#: code:addons/auth_admin_passkey/models/res_users.py:64 +#, python-format +msgid "
User with login '%s' has the same password as you.
" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:39 +#, python-format +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 "" + +#. module: auth_admin_passkey +#: model:ir.ui.view,arch_db:auth_admin_passkey.view_res_config_settings +msgid "Passkey" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:38 +#, python-format +msgid "Passkey used" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_admin +msgid "Send email to admin user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_user +msgid "Send email to user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_res_users +msgid "Users" +msgstr "Brugere" + +#. module: auth_admin_passkey +#: model:ir.model.fields,help:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_user +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the account user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model.fields,help:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_admin +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the admin user." +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:62 +#, python-format +msgid "[WARNING] Odoo Security Risk" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_base_config_settings +msgid "base.config.settings" +msgstr "" diff --git a/auth_admin_passkey/i18n/de.po b/auth_admin_passkey/i18n/de.po new file mode 100644 index 0000000000..f598e0a4ae --- /dev/null +++ b/auth_admin_passkey/i18n/de.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 +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 +#: code:addons/auth_admin_passkey/models/res_users.py:64 +#, python-format +msgid "
User with login '%s' has the same password as you.
" +msgstr "" +"
Benutzer mit Anmeldename '%s' hat das gleiche Passwort wie Sie.
" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:39 +#, python-format +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" + +#. module: auth_admin_passkey +#: model:ir.ui.view,arch_db:auth_admin_passkey.view_res_config_settings +msgid "Passkey" +msgstr "PassKey" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:38 +#, python-format +msgid "Passkey used" +msgstr "Verwendeter PassKey" + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_admin +msgid "Send email to admin user." +msgstr "Sende Email an Admin-Benutzer." + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_user +msgid "Send email to user." +msgstr "Sende Email an Benutzer" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_res_users +msgid "Users" +msgstr "Benutzer" + +#. module: auth_admin_passkey +#: model:ir.model.fields,help:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_user +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." + +#. module: auth_admin_passkey +#: model:ir.model.fields,help:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_admin +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." + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:62 +#, python-format +msgid "[WARNING] Odoo Security Risk" +msgstr "[Warnung] Odoo Sicherheitsrisiko" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_base_config_settings +msgid "base.config.settings" +msgstr "" diff --git a/auth_admin_passkey/i18n/el_GR.po b/auth_admin_passkey/i18n/el_GR.po new file mode 100644 index 0000000000..3c23c16db6 --- /dev/null +++ b/auth_admin_passkey/i18n/el_GR.po @@ -0,0 +1,90 @@ +# 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 +#: code:addons/auth_admin_passkey/models/res_users.py:64 +#, python-format +msgid "
User with login '%s' has the same password as you.
" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:39 +#, python-format +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 "" + +#. module: auth_admin_passkey +#: model:ir.ui.view,arch_db:auth_admin_passkey.view_res_config_settings +msgid "Passkey" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:38 +#, python-format +msgid "Passkey used" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_admin +msgid "Send email to admin user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_user +msgid "Send email to user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_res_users +msgid "Users" +msgstr "Χρήστες" + +#. module: auth_admin_passkey +#: model:ir.model.fields,help:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_user +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the account user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model.fields,help:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_admin +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the admin user." +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:62 +#, python-format +msgid "[WARNING] Odoo Security Risk" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_base_config_settings +msgid "base.config.settings" +msgstr "" diff --git a/auth_admin_passkey/i18n/es.po b/auth_admin_passkey/i18n/es.po new file mode 100644 index 0000000000..d42a61892b --- /dev/null +++ b/auth_admin_passkey/i18n/es.po @@ -0,0 +1,101 @@ +# 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 +#: code:addons/auth_admin_passkey/models/res_users.py:64 +#, python-format +msgid "
User with login '%s' has the same password as you.
" +msgstr "" +"
El usuario con identificador '%s' tiene la misma contraseña que usted."
+
+#. module: auth_admin_passkey
+#: code:addons/auth_admin_passkey/models/res_users.py:39
+#, python-format
+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"
+
+#. module: auth_admin_passkey
+#: model:ir.ui.view,arch_db:auth_admin_passkey.view_res_config_settings
+msgid "Passkey"
+msgstr "Clave de acceso"
+
+#. module: auth_admin_passkey
+#: code:addons/auth_admin_passkey/models/res_users.py:38
+#, python-format
+msgid "Passkey used"
+msgstr "Clave de acceso utilizada"
+
+#. module: auth_admin_passkey
+#: model:ir.model.fields,field_description:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_admin
+msgid "Send email to admin user."
+msgstr "Enviar email al usuario administrador."
+
+#. module: auth_admin_passkey
+#: model:ir.model.fields,field_description:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_user
+msgid "Send email to user."
+msgstr "Enviar email al usuario."
+
+#. module: auth_admin_passkey
+#: model:ir.model,name:auth_admin_passkey.model_res_users
+msgid "Users"
+msgstr "Usuarios"
+
+#. module: auth_admin_passkey
+#: model:ir.model.fields,help:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_user
+msgid ""
+"When the administrator use his password to login in with a different "
+"account, Odoo will send an email to the account user."
+msgstr ""
+
+#. module: auth_admin_passkey
+#: model:ir.model.fields,help:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_admin
+msgid ""
+"When the administrator use his password to login in with a different "
+"account, Odoo will send an email to the admin user."
+msgstr ""
+
+#. module: auth_admin_passkey
+#: code:addons/auth_admin_passkey/models/res_users.py:62
+#, python-format
+msgid "[WARNING] Odoo Security Risk"
+msgstr "[ADVERTENCIA] Riesgo de seguridad de Odoo"
+
+#. module: auth_admin_passkey
+#: model:ir.model,name:auth_admin_passkey.model_base_config_settings
+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..82be9a198a
--- /dev/null
+++ b/auth_admin_passkey/i18n/es_ES.po
@@ -0,0 +1,90 @@
+# 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
+#: code:addons/auth_admin_passkey/models/res_users.py:64
+#, python-format
+msgid "
User with login '%s' has the same password as you.
" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:39 +#, python-format +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 "" + +#. module: auth_admin_passkey +#: model:ir.ui.view,arch_db:auth_admin_passkey.view_res_config_settings +msgid "Passkey" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:38 +#, python-format +msgid "Passkey used" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_admin +msgid "Send email to admin user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_user +msgid "Send email to user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_res_users +msgid "Users" +msgstr "Usuarios" + +#. module: auth_admin_passkey +#: model:ir.model.fields,help:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_user +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the account user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model.fields,help:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_admin +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the admin user." +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:62 +#, python-format +msgid "[WARNING] Odoo Security Risk" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_base_config_settings +msgid "base.config.settings" +msgstr "" diff --git a/auth_admin_passkey/i18n/fi.po b/auth_admin_passkey/i18n/fi.po new file mode 100644 index 0000000000..1abf0d64ca --- /dev/null +++ b/auth_admin_passkey/i18n/fi.po @@ -0,0 +1,90 @@ +# 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 +#: code:addons/auth_admin_passkey/models/res_users.py:64 +#, python-format +msgid "
User with login '%s' has the same password as you.
" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:39 +#, python-format +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 "" + +#. module: auth_admin_passkey +#: model:ir.ui.view,arch_db:auth_admin_passkey.view_res_config_settings +msgid "Passkey" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:38 +#, python-format +msgid "Passkey used" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_admin +msgid "Send email to admin user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_user +msgid "Send email to user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_res_users +msgid "Users" +msgstr "Käyttäjät" + +#. module: auth_admin_passkey +#: model:ir.model.fields,help:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_user +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the account user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model.fields,help:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_admin +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the admin user." +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:62 +#, python-format +msgid "[WARNING] Odoo Security Risk" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_base_config_settings +msgid "base.config.settings" +msgstr "" diff --git a/auth_admin_passkey/i18n/fr.po b/auth_admin_passkey/i18n/fr.po new file mode 100644 index 0000000000..cc086eb160 --- /dev/null +++ b/auth_admin_passkey/i18n/fr.po @@ -0,0 +1,106 @@ +# 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: 2017-12-01 02:09+0000\n" +"Last-Translator: Nicolas JEUDY , 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_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:64 +#, python-format +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.
" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:39 +#, python-format +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" + +#. module: auth_admin_passkey +#: model:ir.ui.view,arch_db:auth_admin_passkey.view_res_config_settings +msgid "Passkey" +msgstr "Mot de passe \"bris de glace\"" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:38 +#, python-format +msgid "Passkey used" +msgstr "Mot de passe \"bris de glace\" utilisé" + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_admin +msgid "Send email to admin user." +msgstr "Envoyer un email à l'administrateur." + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_user +msgid "Send email to user." +msgstr "Envoyer un email à l'utilisateur." + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_res_users +msgid "Users" +msgstr "Utilisateurs" + +#. module: auth_admin_passkey +#: model:ir.model.fields,help:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_user +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." + +#. module: auth_admin_passkey +#: model:ir.model.fields,help:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_admin +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." + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:62 +#, python-format +msgid "[WARNING] Odoo Security Risk" +msgstr "[WARNING] Faille de sécurité sur Odoo" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_base_config_settings +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..1be7b921ef --- /dev/null +++ b/auth_admin_passkey/i18n/fr_CH.po @@ -0,0 +1,90 @@ +# 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 +#: code:addons/auth_admin_passkey/models/res_users.py:64 +#, python-format +msgid "
User with login '%s' has the same password as you.
" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:39 +#, python-format +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 "" + +#. module: auth_admin_passkey +#: model:ir.ui.view,arch_db:auth_admin_passkey.view_res_config_settings +msgid "Passkey" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:38 +#, python-format +msgid "Passkey used" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_admin +msgid "Send email to admin user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_user +msgid "Send email to user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_res_users +msgid "Users" +msgstr "Utilisateurs" + +#. module: auth_admin_passkey +#: model:ir.model.fields,help:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_user +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the account user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model.fields,help:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_admin +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the admin user." +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:62 +#, python-format +msgid "[WARNING] Odoo Security Risk" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_base_config_settings +msgid "base.config.settings" +msgstr "" diff --git a/auth_admin_passkey/i18n/fr_FR.po b/auth_admin_passkey/i18n/fr_FR.po new file mode 100644 index 0000000000..5fc2a14528 --- /dev/null +++ b/auth_admin_passkey/i18n/fr_FR.po @@ -0,0 +1,91 @@ +# 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 +#: code:addons/auth_admin_passkey/models/res_users.py:64 +#, python-format +msgid "
User with login '%s' has the same password as you.
" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:39 +#, python-format +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 "" + +#. module: auth_admin_passkey +#: model:ir.ui.view,arch_db:auth_admin_passkey.view_res_config_settings +msgid "Passkey" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:38 +#, python-format +msgid "Passkey used" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_admin +msgid "Send email to admin user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_user +msgid "Send email to user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_res_users +msgid "Users" +msgstr "Utilsateurs" + +#. module: auth_admin_passkey +#: model:ir.model.fields,help:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_user +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the account user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model.fields,help:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_admin +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the admin user." +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:62 +#, python-format +msgid "[WARNING] Odoo Security Risk" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_base_config_settings +msgid "base.config.settings" +msgstr "" diff --git a/auth_admin_passkey/i18n/hr.po b/auth_admin_passkey/i18n/hr.po new file mode 100644 index 0000000000..d068e32df8 --- /dev/null +++ b/auth_admin_passkey/i18n/hr.po @@ -0,0 +1,104 @@ +# 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: 2018-03-02 18:39+0000\n" +"Last-Translator: Bole , 2018\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" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:64 +#, python-format +msgid "
User with login '%s' has the same password as you.
" +msgstr "
Korisnik '%s' ima istu zaporku kao i Vi.
" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:39 +#, python-format +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" + +#. module: auth_admin_passkey +#: model:ir.ui.view,arch_db:auth_admin_passkey.view_res_config_settings +msgid "Passkey" +msgstr "Ključ" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:38 +#, python-format +msgid "Passkey used" +msgstr "Korišten ključ" + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_admin +msgid "Send email to admin user." +msgstr "Pošalji mail administratoru" + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_user +msgid "Send email to user." +msgstr "Pošalji mail korisniku." + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_res_users +msgid "Users" +msgstr "Korisnici" + +#. module: auth_admin_passkey +#: model:ir.model.fields,help:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_user +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." + +#. module: auth_admin_passkey +#: model:ir.model.fields,help:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_admin +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." + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:62 +#, python-format +msgid "[WARNING] Odoo Security Risk" +msgstr "[UPOZORENJE] Odoo sigurnosni rizik" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_base_config_settings +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..6dd9652336 --- /dev/null +++ b/auth_admin_passkey/i18n/hr_HR.po @@ -0,0 +1,91 @@ +# 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 +#: code:addons/auth_admin_passkey/models/res_users.py:64 +#, python-format +msgid "
User with login '%s' has the same password as you.
" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:39 +#, python-format +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 "" + +#. module: auth_admin_passkey +#: model:ir.ui.view,arch_db:auth_admin_passkey.view_res_config_settings +msgid "Passkey" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:38 +#, python-format +msgid "Passkey used" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_admin +msgid "Send email to admin user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_user +msgid "Send email to user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_res_users +msgid "Users" +msgstr "Korisnici" + +#. module: auth_admin_passkey +#: model:ir.model.fields,help:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_user +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the account user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model.fields,help:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_admin +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the admin user." +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:62 +#, python-format +msgid "[WARNING] Odoo Security Risk" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_base_config_settings +msgid "base.config.settings" +msgstr "" diff --git a/auth_admin_passkey/i18n/it.po b/auth_admin_passkey/i18n/it.po new file mode 100644 index 0000000000..8443f837fb --- /dev/null +++ b/auth_admin_passkey/i18n/it.po @@ -0,0 +1,90 @@ +# 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 +#: code:addons/auth_admin_passkey/models/res_users.py:64 +#, python-format +msgid "
User with login '%s' has the same password as you.
" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:39 +#, python-format +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 "" + +#. module: auth_admin_passkey +#: model:ir.ui.view,arch_db:auth_admin_passkey.view_res_config_settings +msgid "Passkey" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:38 +#, python-format +msgid "Passkey used" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_admin +msgid "Send email to admin user." +msgstr "Invia email all'utente amministratore." + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_user +msgid "Send email to user." +msgstr "Invia email all'utente." + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_res_users +msgid "Users" +msgstr "Utenti" + +#. module: auth_admin_passkey +#: model:ir.model.fields,help:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_user +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the account user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model.fields,help:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_admin +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the admin user." +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:62 +#, python-format +msgid "[WARNING] Odoo Security Risk" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_base_config_settings +msgid "base.config.settings" +msgstr "" diff --git a/auth_admin_passkey/i18n/nl.po b/auth_admin_passkey/i18n/nl.po new file mode 100644 index 0000000000..c74c8efc1f --- /dev/null +++ b/auth_admin_passkey/i18n/nl.po @@ -0,0 +1,90 @@ +# 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 +#: code:addons/auth_admin_passkey/models/res_users.py:64 +#, python-format +msgid "
User with login '%s' has the same password as you.
" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:39 +#, python-format +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 "" + +#. module: auth_admin_passkey +#: model:ir.ui.view,arch_db:auth_admin_passkey.view_res_config_settings +msgid "Passkey" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:38 +#, python-format +msgid "Passkey used" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_admin +msgid "Send email to admin user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_user +msgid "Send email to user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_res_users +msgid "Users" +msgstr "Gebruikers" + +#. module: auth_admin_passkey +#: model:ir.model.fields,help:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_user +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the account user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model.fields,help:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_admin +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the admin user." +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:62 +#, python-format +msgid "[WARNING] Odoo Security Risk" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_base_config_settings +msgid "base.config.settings" +msgstr "" diff --git a/auth_admin_passkey/i18n/nl_NL.po b/auth_admin_passkey/i18n/nl_NL.po new file mode 100644 index 0000000000..1be103e024 --- /dev/null +++ b/auth_admin_passkey/i18n/nl_NL.po @@ -0,0 +1,91 @@ +# 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 +#: code:addons/auth_admin_passkey/models/res_users.py:64 +#, python-format +msgid "
User with login '%s' has the same password as you.
" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:39 +#, python-format +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 "" + +#. module: auth_admin_passkey +#: model:ir.ui.view,arch_db:auth_admin_passkey.view_res_config_settings +msgid "Passkey" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:38 +#, python-format +msgid "Passkey used" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_admin +msgid "Send email to admin user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_user +msgid "Send email to user." +msgstr "Stuur email naar gebruiker." + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_res_users +msgid "Users" +msgstr "Gebruikers" + +#. module: auth_admin_passkey +#: model:ir.model.fields,help:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_user +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the account user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model.fields,help:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_admin +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the admin user." +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:62 +#, python-format +msgid "[WARNING] Odoo Security Risk" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_base_config_settings +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..e9f4670f32 --- /dev/null +++ b/auth_admin_passkey/i18n/pt.po @@ -0,0 +1,103 @@ +# 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 +#: code:addons/auth_admin_passkey/models/res_users.py:64 +#, python-format +msgid "
User with login '%s' has the same password as you.
" +msgstr "
A palavra-passe do utilizador '%s' é igual à sua.
" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:39 +#, python-format +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" + +#. module: auth_admin_passkey +#: model:ir.ui.view,arch_db:auth_admin_passkey.view_res_config_settings +msgid "Passkey" +msgstr "Chave-mestra" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:38 +#, python-format +msgid "Passkey used" +msgstr "Chave-mestra utilizada" + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_admin +msgid "Send email to admin user." +msgstr "Enviar email para o utilizador admin." + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_user +msgid "Send email to user." +msgstr "Enviar email para o utilizador." + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_res_users +msgid "Users" +msgstr "Utilizadores" + +#. module: auth_admin_passkey +#: model:ir.model.fields,help:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_user +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." + +#. module: auth_admin_passkey +#: model:ir.model.fields,help:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_admin +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." + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:62 +#, python-format +msgid "[WARNING] Odoo Security Risk" +msgstr "[AVISO] Risco de Segurança do Odoo" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_base_config_settings +msgid "base.config.settings" +msgstr "" diff --git a/auth_admin_passkey/i18n/pt_BR.po b/auth_admin_passkey/i18n/pt_BR.po new file mode 100644 index 0000000000..b2506f9585 --- /dev/null +++ b/auth_admin_passkey/i18n/pt_BR.po @@ -0,0 +1,95 @@ +# 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: 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" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:64 +#, python-format +msgid "
User with login '%s' has the same password as you.
" +msgstr "
Usuário com login '%s' tem a mesma senha que você.
" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:39 +#, python-format +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 "" + +#. module: auth_admin_passkey +#: model:ir.ui.view,arch_db:auth_admin_passkey.view_res_config_settings +msgid "Passkey" +msgstr "Passkey" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:38 +#, python-format +msgid "Passkey used" +msgstr "Passkey usada" + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_admin +msgid "Send email to admin user." +msgstr "Enviar email para usuário administrador" + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_user +msgid "Send email to user." +msgstr "Enviar email para usuário." + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_res_users +msgid "Users" +msgstr "Usuários" + +#. module: auth_admin_passkey +#: model:ir.model.fields,help:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_user +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." + +#. module: auth_admin_passkey +#: model:ir.model.fields,help:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_admin +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." + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:62 +#, python-format +msgid "[WARNING] Odoo Security Risk" +msgstr "[AVISO] Odoo Risco de Segurança" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_base_config_settings +msgid "base.config.settings" +msgstr "" diff --git a/auth_admin_passkey/i18n/ro.po b/auth_admin_passkey/i18n/ro.po new file mode 100644 index 0000000000..67a0c55c37 --- /dev/null +++ b/auth_admin_passkey/i18n/ro.po @@ -0,0 +1,91 @@ +# 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 +#: code:addons/auth_admin_passkey/models/res_users.py:64 +#, python-format +msgid "
User with login '%s' has the same password as you.
" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:39 +#, python-format +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 "" + +#. module: auth_admin_passkey +#: model:ir.ui.view,arch_db:auth_admin_passkey.view_res_config_settings +msgid "Passkey" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:38 +#, python-format +msgid "Passkey used" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_admin +msgid "Send email to admin user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_user +msgid "Send email to user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_res_users +msgid "Users" +msgstr "Utilizatori" + +#. module: auth_admin_passkey +#: model:ir.model.fields,help:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_user +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the account user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model.fields,help:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_admin +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the admin user." +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:62 +#, python-format +msgid "[WARNING] Odoo Security Risk" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_base_config_settings +msgid "base.config.settings" +msgstr "" diff --git a/auth_admin_passkey/i18n/sl.po b/auth_admin_passkey/i18n/sl.po new file mode 100644 index 0000000000..aeb8578257 --- /dev/null +++ b/auth_admin_passkey/i18n/sl.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 +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 +#: code:addons/auth_admin_passkey/models/res_users.py:64 +#, python-format +msgid "
User with login '%s' has the same password as you.
" +msgstr "
Uporabnik '%s' ima enako geslo kot vi.
" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:39 +#, python-format +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" + +#. module: auth_admin_passkey +#: model:ir.ui.view,arch_db:auth_admin_passkey.view_res_config_settings +msgid "Passkey" +msgstr "Prijavni ključ" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:38 +#, python-format +msgid "Passkey used" +msgstr "Uporabljen prijavni ključ" + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_admin +msgid "Send email to admin user." +msgstr "Pošlji e-pošto administratorju." + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_user +msgid "Send email to user." +msgstr "Pošlji e-pošto uporabniku." + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_res_users +msgid "Users" +msgstr "Uporabniki" + +#. module: auth_admin_passkey +#: model:ir.model.fields,help:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_user +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." + +#. module: auth_admin_passkey +#: model:ir.model.fields,help:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_admin +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." + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:62 +#, python-format +msgid "[WARNING] Odoo Security Risk" +msgstr "[OPOZORILO] Odoo varnostno tveganje" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_base_config_settings +msgid "base.config.settings" +msgstr "" diff --git a/auth_admin_passkey/i18n/tr.po b/auth_admin_passkey/i18n/tr.po new file mode 100644 index 0000000000..f36145466f --- /dev/null +++ b/auth_admin_passkey/i18n/tr.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: 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 +#: code:addons/auth_admin_passkey/models/res_users.py:64 +#, python-format +msgid "
User with login '%s' has the same password as you.
" +msgstr "
 '%s' kullanıcısının şifresi sizinkiyle aynı.
" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:39 +#, python-format +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" + +#. module: auth_admin_passkey +#: model:ir.ui.view,arch_db:auth_admin_passkey.view_res_config_settings +msgid "Passkey" +msgstr "Parola" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:38 +#, python-format +msgid "Passkey used" +msgstr "Kullanılan parola" + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_admin +msgid "Send email to admin user." +msgstr "Yöneticiye e-posta gönder." + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_user +msgid "Send email to user." +msgstr "Kullanıcıya e-posta gönder." + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_res_users +msgid "Users" +msgstr "Kullanıcılar" + +#. module: auth_admin_passkey +#: model:ir.model.fields,help:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_user +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." + +#. module: auth_admin_passkey +#: model:ir.model.fields,help:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_admin +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." + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:62 +#, python-format +msgid "[WARNING] Odoo Security Risk" +msgstr "[UYARI] Odoo Güvenlik Riski" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_base_config_settings +msgid "base.config.settings" +msgstr "" diff --git a/auth_admin_passkey/i18n/tr_TR.po b/auth_admin_passkey/i18n/tr_TR.po new file mode 100644 index 0000000000..891932d649 --- /dev/null +++ b/auth_admin_passkey/i18n/tr_TR.po @@ -0,0 +1,90 @@ +# 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 +#: code:addons/auth_admin_passkey/models/res_users.py:64 +#, python-format +msgid "
User with login '%s' has the same password as you.
" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:39 +#, python-format +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 "" + +#. module: auth_admin_passkey +#: model:ir.ui.view,arch_db:auth_admin_passkey.view_res_config_settings +msgid "Passkey" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:38 +#, python-format +msgid "Passkey used" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_admin +msgid "Send email to admin user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_user +msgid "Send email to user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_res_users +msgid "Users" +msgstr "Kullanıcılar" + +#. module: auth_admin_passkey +#: model:ir.model.fields,help:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_user +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the account user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model.fields,help:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_admin +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the admin user." +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:62 +#, python-format +msgid "[WARNING] Odoo Security Risk" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_base_config_settings +msgid "base.config.settings" +msgstr "" diff --git a/auth_admin_passkey/i18n/zh_CN.po b/auth_admin_passkey/i18n/zh_CN.po new file mode 100644 index 0000000000..4231d8131e --- /dev/null +++ b/auth_admin_passkey/i18n/zh_CN.po @@ -0,0 +1,90 @@ +# 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 +#: code:addons/auth_admin_passkey/models/res_users.py:64 +#, python-format +msgid "
User with login '%s' has the same password as you.
" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:39 +#, python-format +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 "" + +#. module: auth_admin_passkey +#: model:ir.ui.view,arch_db:auth_admin_passkey.view_res_config_settings +msgid "Passkey" +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:38 +#, python-format +msgid "Passkey used" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_admin +msgid "Send email to admin user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model.fields,field_description:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_user +msgid "Send email to user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_res_users +msgid "Users" +msgstr "用户" + +#. module: auth_admin_passkey +#: model:ir.model.fields,help:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_user +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the account user." +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model.fields,help:auth_admin_passkey.field_base_config_settings_auth_admin_passkey_send_to_admin +msgid "" +"When the administrator use his password to login in with a different " +"account, Odoo will send an email to the admin user." +msgstr "" + +#. module: auth_admin_passkey +#: code:addons/auth_admin_passkey/models/res_users.py:62 +#, python-format +msgid "[WARNING] Odoo Security Risk" +msgstr "" + +#. module: auth_admin_passkey +#: model:ir.model,name:auth_admin_passkey.model_base_config_settings +msgid "base.config.settings" +msgstr "" diff --git a/auth_admin_passkey/models/__init__.py b/auth_admin_passkey/models/__init__.py new file mode 100644 index 0000000000..d8486870a4 --- /dev/null +++ b/auth_admin_passkey/models/__init__.py @@ -0,0 +1,5 @@ +# Copyright (C) 2013-2014 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 . import res_config, res_users diff --git a/auth_admin_passkey/models/res_config.py b/auth_admin_passkey/models/res_config.py new file mode 100644 index 0000000000..5cc18d8838 --- /dev/null +++ b/auth_admin_passkey/models/res_config.py @@ -0,0 +1,65 @@ +# Copyright (C) 2013-2014 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 api, fields, models +from odoo.tools import safe_eval + + +class BaseConfigSettings(models.TransientModel): + _inherit = "res.config.settings" + + @api.model + def get_default_auth_admin_passkey_send_to_admin(self, fields): + icp = self.env["ir.config_parameter"] + return { + "auth_admin_passkey_send_to_admin": safe_eval( + icp.get_param("auth_admin_passkey.send_to_admin", "True") + ) + } + + @api.model + def get_default_auth_admin_passkey_send_to_user(self, fields): + icp = self.env["ir.config_parameter"] + return { + "auth_admin_passkey_send_to_user": safe_eval( + icp.get_param("auth_admin_passkey.send_to_user", "True") + ) + } + + auth_admin_passkey_send_to_admin = fields.Boolean( + "Send email to admin user.", + help=( + "When the administrator use his password to login in " + "with a different account, Odoo will send an email " + "to the admin user." + ), + ) + auth_admin_passkey_send_to_user = fields.Boolean( + string="Send email to user.", + help=( + "When the administrator use his password to login in " + "with a different account, Odoo will send an email " + "to the account user." + ), + ) + + @api.multi + def set_auth_admin_passkey_send_to_admin(self): + self.ensure_one() + + icp = self.env["ir.config_parameter"] + icp.set_param( + "auth_admin_passkey.send_to_admin", + repr(self.auth_admin_passkey_send_to_admin), + ) + + @api.multi + def set_auth_admin_passkey_send_to_user(self): + self.ensure_one() + + icp = self.env["ir.config_parameter"] + icp.set_param( + "auth_admin_passkey.send_to_user", + repr(self.auth_admin_passkey_send_to_user), + ) diff --git a/auth_admin_passkey/models/res_users.py b/auth_admin_passkey/models/res_users.py new file mode 100644 index 0000000000..a34f30792c --- /dev/null +++ b/auth_admin_passkey/models/res_users.py @@ -0,0 +1,139 @@ +# Copyright (C) 2013-2014 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 datetime +import random +import string + +from odoo import _, api, exceptions, fields, models +from odoo.http import request +from odoo.tools.safe_eval import safe_eval + +from ..exceptions import OTPLoginNeeded + + +def now(**kwargs): + return datetime.datetime.now() + datetime.timedelta(**kwargs) + + +class ResUsers(models.Model): + _inherit = "res.users" + + passkey_otp = fields.Char() + passkey_otp_expire = fields.Datetime() + + @api.multi + def action_generate_passkey_otp(self): + self.ensure_one() + + rand = random.SystemRandom() + + self.passkey_otp = "".join( + rand.choice(string.digits) for _ in range(6) + ) + + try: + minutes = int( + self.env.ref('auth_admin_passkey.otp_lifetime').value) + self.passkey_otp_expire = now(minutes=minutes) + except (ValueError, AttributeError): + self.passkey_otp_expire = now(minutes=60) + + @api.model + def _send_email_passkey(self, user_id): + """ Send a email to the admin of the system and / or the user + to inform passkey use.""" + admin_user = self.env.ref('base.user_admin') + login_user = self.browse(user_id) + + mail_obj = self.env["mail.mail"].sudo(admin_user.id) + icp_obj = self.env["ir.config_parameter"].sudo(admin_user.id) + + send_to_admin = safe_eval(icp_obj.get_param( + "auth_admin_passkey.send_to_admin")) + send_to_user = safe_eval(icp_obj.get_param( + "auth_admin_passkey.send_to_user")) + + mails = [] + if send_to_admin and admin_user.email: + mails.append({"email": admin_user.email, "lang": admin_user.lang}) + if send_to_user and login_user.email: + mails.append({"email": login_user.email, "lang": login_user.lang}) + for mail in mails: + subject = _("Passkey used") + body = _( + "Admin user used his passkey to login with '%s'.\n\n" + "\n\nTechnicals informations belows : \n\n" + "- Login date : %s\n\n" + ) % ( + login_user.login, + datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"), + ) + + mail_obj.create( + { + "email_to": mail["email"], + "subject": subject, + "body_html": "
%s
" % body, + } + ) + + @api.model + def _send_email_same_password(self, login): + """ Send an email to the admin user to inform that + another user has the same password as him.""" + mail_obj = self.env["mail.mail"].sudo() + admin_user = self.env.ref('base.user_admin') + + if admin_user.email: + mail_obj.create( + { + "email_to": admin_user.email, + "subject": _("[WARNING] Odoo Security Risk"), + "body_html": _( + "
User with login '%s' has the same "
+                        "password as you.
" + ) + % (login), + } + ) + + def _check_credentials(self, password): + """ Despite using @api.model decorator, this method + is always called by a res.users record""" + admin = self.env.ref('base.user_admin') + try: + super(ResUsers, self)._check_credentials(password) + + # If credentials are ok, try to log with user password as admin + # user and send email if they are equal + if self._uid != admin.id: + try: + super(ResUsers, self).sudo(admin.id)._check_credentials( + password) + self._send_email_same_password(self.login) + except exceptions.AccessDenied: + pass + + except exceptions.AccessDenied: + if self._uid == admin.id: + raise + + # Just be sure that parent methods aren't wrong + user = self.sudo().search([ + ("id", "=", self._uid), + ]) + if not user: + raise + + # Our user isn't using its own password, check if its admin one + try: + super(ResUsers, self).sudo(admin.id)._check_credentials( + password) + self._send_email_passkey(self._uid) + except exceptions.AccessDenied: + raise + + if not request.session.get('admin_passkey_with_otp', False): + raise OTPLoginNeeded() diff --git a/auth_admin_passkey/readme/CONFIGURE.rst b/auth_admin_passkey/readme/CONFIGURE.rst new file mode 100644 index 0000000000..0edbd0c1a0 --- /dev/null +++ b/auth_admin_passkey/readme/CONFIGURE.rst @@ -0,0 +1,5 @@ +To enable notifications for login attempts, you need to: + +Go to Settings > General Settings. + +Enable the "Send email to admin user" and / or "Send email to user" checkbox diff --git a/auth_admin_passkey/readme/CONTRIBUTORS.rst b/auth_admin_passkey/readme/CONTRIBUTORS.rst new file mode 100644 index 0000000000..00d64a38f1 --- /dev/null +++ b/auth_admin_passkey/readme/CONTRIBUTORS.rst @@ -0,0 +1,3 @@ +* Eugen Don +* Alexandre Papin (https://twitter.com/Fenkiou) +* Sylvain LE GAL (https://twitter.com/legalsylvain) diff --git a/auth_admin_passkey/readme/DESCRIPTION.rst b/auth_admin_passkey/readme/DESCRIPTION.rst new file mode 100644 index 0000000000..a47818a469 --- /dev/null +++ b/auth_admin_passkey/readme/DESCRIPTION.rst @@ -0,0 +1,6 @@ +This module extends the functionality of users module to support loging in with the administrator password +in other user accounts. + +* Administrator has now the possibility to login in with any login; +* By default, Odoo will send a mail to user and admin to indicate them; +* If a user and the admin have the same password, admin will be informed; diff --git a/auth_admin_passkey/readme/USAGE.rst b/auth_admin_passkey/readme/USAGE.rst new file mode 100644 index 0000000000..244189632c --- /dev/null +++ b/auth_admin_passkey/readme/USAGE.rst @@ -0,0 +1 @@ +To login into a different user account type in the user name of the account and the password of the administrator at the login screen 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..e583bc741c --- /dev/null +++ b/auth_admin_passkey/static/description/index.html @@ -0,0 +1,439 @@ + + + + + + +Authentification - Admin Passkey + + + +
+

Authentification - Admin Passkey

+ + +

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

+

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

+
    +
  • Administrator has now the possibility to login in with any login;
  • +
  • By default, Odoo will send a mail to user and admin to indicate them;
  • +
  • If a user and the admin have the same password, admin will be informed;
  • +
+

Table of contents

+ +
+

Configuration

+

To enable notifications for login attempts, you need to:

+

Go to Settings > General Settings.

+

Enable the “Send email to admin user” and / or “Send email to user” checkbox

+
+
+

Usage

+

To login into a different user account type in the user name of the account and the password of the administrator at the login screen

+
+
+

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 smashing it by providing a detailed and welcomed +feedback.

+

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

+
+
+

Credits

+
+

Authors

+
    +
  • GRAP
  • +
+
+ +
+

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..2568c48335 --- /dev/null +++ b/auth_admin_passkey/tests/__init__.py @@ -0,0 +1,6 @@ +# Copyright (C) 2013-2014 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 . 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..14d1582eb9 --- /dev/null +++ b/auth_admin_passkey/tests/test_auth_admin_passkey.py @@ -0,0 +1,63 @@ +# Copyright (C) 2013-2014 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 + + +@common.post_install(True) +class TestAuthAdminPasskey(common.TransactionCase): + """Tests for 'Auth Admin Passkey' Module""" + + def setUp(self): + super(TestAuthAdminPasskey, self).setUp() + + self.ru_obj = self.env["res.users"] + + self.db = self.env.cr.dbname + + self.admin_user = self.env.ref('base.user_admin') + self.passkey_user = self.ru_obj.create({ + "login": "passkey", "password": "PasskeyPa$$w0rd", + "name": "passkey" + }) + + def test_01_normal_login_admin_succeed(self): + # NOTE: Can fail if admin password changed + self.admin_user.sudo(self.admin_user.id)._check_credentials( + "admin") + + def test_02_normal_login_admin_fail(self): + with self.assertRaises(exceptions.AccessDenied): + self.admin_user.sudo(self.admin_user.id)._check_credentials( + "bad_password") + + def test_03_normal_login_passkey_succeed(self): + """ This test cannot pass because in some way the the _uid of + passkey_user is equal to admin one so when entering the + original check_credentials() method, it raises an exception + """ + try: + self.passkey_user.sudo(self.passkey_user.id)._check_credentials( + "passkey") + except exceptions.AccessDenied: + # This exception is raised from the origin check_credentials() + # method and its an expected behaviour as we catch this in our + # check_credentials() + pass + + def test_04_normal_login_passkey_fail(self): + with self.assertRaises(exceptions.AccessDenied): + self.passkey_user._check_credentials("bad_password") + + def test_05_passkey_login_passkey_with_admin_password_succeed(self): + # NOTE: Can fail if admin password changed + self.passkey_user.sudo(self.passkey_user.id)._check_credentials( + "admin") + + def test_06_passkey_login_passkey_succeed(self): + """[Bug #1319391] + Test the correct behaviour of login with 'bad_login' / 'admin'""" + with self.assertRaises(exceptions.AccessDenied): + self.ru_obj.authenticate(self.db, "bad_login", "admin", {}) diff --git a/auth_admin_passkey/tests/test_ui.py b/auth_admin_passkey/tests/test_ui.py new file mode 100644 index 0000000000..6fd65560e0 --- /dev/null +++ b/auth_admin_passkey/tests/test_ui.py @@ -0,0 +1,169 @@ +# Copyright (C) 2013-2014 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.tests import common +from odoo.service import wsgi_server + + +@common.post_install(True) +class TestUI(common.HttpCase): + def setUp(self): + super(TestUI, self).setUp() + + self.admin_password = "AdminPa$$w0rd" + self.env.ref("base.user_admin").password = self.admin_password + self.passkey_password = "PasskeyPa$$w0rd" + self.passkey_user = self.env["res.users"].create( + { + "name": "passkey", + "login": "passkey", + "email": "passkey", + "password": self.passkey_password, + } + ) + self.dbname = self.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_admin_succeed(self): + # Our admin 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(b"oe_login_form", response.data) + + # He needs to enters his credentials and submit the form + data = { + "login": "admin", + "password": self.admin_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(b"oe_login_form", response.data) + + def test_02_normal_login_admin_fail(self): + # Our admin 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(b"oe_login_form", response.data) + + # He needs to enter his credentials and submit the form + data = { + "login": "admin", + "password": "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(b"Wrong login/password", response.data) + + def test_03_normal_login_passkey_succeed(self): + # 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(b"oe_login_form", response.data) + + # He needs to enter his credentials and submit the form + data = { + "login": self.passkey_user.login, + "password": self.passkey_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(b"oe_login_form", response.data) + + def test_04_normal_login_passkey_fail(self): + # 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(b"oe_login_form", response.data) + + # He needs to enter his credentials and submit the form + data = { + "login": self.passkey_user.login, + "password": "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(b"Wrong login/password", response.data) + + def test_05_passkey_login_with_admin_password_succeed(self): + # Our admin user wants to login as passkey user + response = self.get_request("/web/", data={"db": self.dbname}) + + # He notices that his redirected to login page as not authenticated + self.assertIn(b"oe_login_form", response.data) + + # He needs to enters its password with passkey user's login + data = { + "login": self.passkey_user.login, + "password": self.admin_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(b"oe_login_form", response.data) + + def test_06_passkey_login_with_same_password_as_admin(self): + self.passkey_user.password = self.admin_password + + # Our passkey 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(b"oe_login_form", response.data) + + # He needs to enters his credentials and submit the form + data = { + "login": self.passkey_user.login, + "password": self.admin_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(b"oe_login_form", response.data) diff --git a/auth_admin_passkey/views/auth_admin_passkey.xml b/auth_admin_passkey/views/auth_admin_passkey.xml new file mode 100644 index 0000000000..16e4f5afa2 --- /dev/null +++ b/auth_admin_passkey/views/auth_admin_passkey.xml @@ -0,0 +1,27 @@ + + + + + + + diff --git a/auth_admin_passkey/views/res_config_view.xml b/auth_admin_passkey/views/res_config_view.xml new file mode 100644 index 0000000000..6e0839d233 --- /dev/null +++ b/auth_admin_passkey/views/res_config_view.xml @@ -0,0 +1,30 @@ + + + + + res.config.settings.view + res.config.settings + + + +
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+
+
+ +
diff --git a/auth_admin_passkey/views/res_users_view.xml b/auth_admin_passkey/views/res_users_view.xml new file mode 100644 index 0000000000..8573b70119 --- /dev/null +++ b/auth_admin_passkey/views/res_users_view.xml @@ -0,0 +1,4 @@ + + + +