diff --git a/auth_user_case_insensitive/README.rst b/auth_user_case_insensitive/README.rst new file mode 100644 index 0000000000..0a2e49a069 --- /dev/null +++ b/auth_user_case_insensitive/README.rst @@ -0,0 +1,92 @@ +======================= +Case Insensitive Logins +======================= + +.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! 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/15.0/auth_user_case_insensitive + :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-14-0/server-auth-14-0-auth_user_case_insensitive + :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/14.0 + :alt: Try me on Runbot + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module makes user logins case insensitive. It also overwrites the +search method to allow these case insensitive logins to work on a database +that previously had case sensitive logins. + +**Table of contents** + +.. contents:: + :local: + +Installation +============ + +Install this module as you would any other. No further configuration is required. + +Note that upon installation the existing logins will all be converted to lowercase. + +Usage +===== + +.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas + :alt: Steps to test the module + :target: https://runbot.odoo-community.org/runbot/167/11.0 + +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 +~~~~~~~ + +* LasLabs + +Contributors +~~~~~~~~~~~~ + +* Dave Lasley +* Ted Salmon +* Mayank Gosai +* Chandresh Thakkar + +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_user_case_insensitive/__init__.py b/auth_user_case_insensitive/__init__.py new file mode 100644 index 0000000000..f16bb110a5 --- /dev/null +++ b/auth_user_case_insensitive/__init__.py @@ -0,0 +1,7 @@ +# Copyright 2015-2017 LasLabs Inc. +# Copyright 2021 Open Source Integrators +# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html). + +from . import models +from .hooks import pre_init_hook_login_check +from .hooks import post_init_hook_login_convert diff --git a/auth_user_case_insensitive/__manifest__.py b/auth_user_case_insensitive/__manifest__.py new file mode 100644 index 0000000000..2236d35f0a --- /dev/null +++ b/auth_user_case_insensitive/__manifest__.py @@ -0,0 +1,18 @@ +# Copyright 2015-2017 LasLabs Inc. +# Copyright 2021 Open Source Integrators +# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html). +{ + "name": "Case Insensitive Logins", + "summary": "Makes the user login field case insensitive", + "version": "15.0.1.0.0", + "category": "Authentication", + "website": "https://github.com/OCA/server-auth", + "author": "LasLabs, Odoo Community Association (OCA)", + "maintainer": "Odoo Community Association (OCA)", + "license": "AGPL-3", + "application": False, + "installable": True, + "depends": ["mail"], + "pre_init_hook": "pre_init_hook_login_check", + "post_init_hook": "post_init_hook_login_convert", +} diff --git a/auth_user_case_insensitive/hooks.py b/auth_user_case_insensitive/hooks.py new file mode 100644 index 0000000000..5dff4bcb02 --- /dev/null +++ b/auth_user_case_insensitive/hooks.py @@ -0,0 +1,36 @@ +# Copyright 2017 LasLabs Inc. +# Copyright 2021 Open Source Integrators +# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). + +from odoo import _ +from odoo.exceptions import ValidationError + + +def pre_init_hook_login_check(cr): + """This hook will look to see if any conflicting logins exist before + the module is installed + :param openerp.sql_db.Cursor cr: + Database cursor. + """ + with cr.savepoint(): + users = [] + cr.execute("SELECT login FROM res_users") + for user in cr.fetchall(): + login = user[0].lower() + if login not in users: + users.append(login) + else: + raise ValidationError( + _("Conflicting user logins exist for `%s`") % login + ) + + +def post_init_hook_login_convert(cr, registry): + """After the module is installed, set all logins to lowercase + :param openerp.sql_db.Cursor cr: + Database cursor. + :param openerp.modules.registry.RegistryManager registry: + Database registry, using v7 api. + """ + with cr.savepoint(): + cr.execute("UPDATE res_users SET login=lower(login)") diff --git a/auth_user_case_insensitive/i18n/ar.po b/auth_user_case_insensitive/i18n/ar.po new file mode 100644 index 0000000000..617064cec8 --- /dev/null +++ b/auth_user_case_insensitive/i18n/ar.po @@ -0,0 +1,41 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_user_case_insensitive +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-05-17 21:08+0000\n" +"PO-Revision-Date: 2017-05-17 21:08+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Arabic (https://www.transifex.com/oca/teams/23907/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_user_case_insensitive +#: code:addons/auth_user_case_insensitive/hooks.py:0 +#, python-format +msgid "Conflicting user logins exist for `%s`" +msgstr "" + +#. module: auth_user_case_insensitive +#: model:ir.model.fields,field_description:auth_user_case_insensitive.field_res_users__login +msgid "Login" +msgstr "" + +#. module: auth_user_case_insensitive +#: model:ir.model.fields,help:auth_user_case_insensitive.field_res_users__login +msgid "Used to log into the system. Case insensitive." +msgstr "" + +#. module: auth_user_case_insensitive +#: model:ir.model,name:auth_user_case_insensitive.model_res_users +msgid "Users" +msgstr "المستخدمون" diff --git a/auth_user_case_insensitive/i18n/auth_user_case_insensitive.pot b/auth_user_case_insensitive/i18n/auth_user_case_insensitive.pot new file mode 100644 index 0000000000..21f3c1c336 --- /dev/null +++ b/auth_user_case_insensitive/i18n/auth_user_case_insensitive.pot @@ -0,0 +1,50 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_user_case_insensitive +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 14.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_user_case_insensitive +#: code:addons/auth_user_case_insensitive/hooks.py:0 +#, python-format +msgid "Conflicting user logins exist for `%s`" +msgstr "" + +#. module: auth_user_case_insensitive +#: model:ir.model.fields,field_description:auth_user_case_insensitive.field_res_users__display_name +msgid "Display Name" +msgstr "" + +#. module: auth_user_case_insensitive +#: model:ir.model.fields,field_description:auth_user_case_insensitive.field_res_users__id +msgid "ID" +msgstr "" + +#. module: auth_user_case_insensitive +#: model:ir.model.fields,field_description:auth_user_case_insensitive.field_res_users____last_update +msgid "Last Modified on" +msgstr "" + +#. module: auth_user_case_insensitive +#: model:ir.model.fields,field_description:auth_user_case_insensitive.field_res_users__login +msgid "Login" +msgstr "" + +#. module: auth_user_case_insensitive +#: model:ir.model.fields,help:auth_user_case_insensitive.field_res_users__login +msgid "Used to log into the system. Case insensitive." +msgstr "" + +#. module: auth_user_case_insensitive +#: model:ir.model,name:auth_user_case_insensitive.model_res_users +msgid "Users" +msgstr "" diff --git a/auth_user_case_insensitive/i18n/ca.po b/auth_user_case_insensitive/i18n/ca.po new file mode 100644 index 0000000000..8c6024b109 --- /dev/null +++ b/auth_user_case_insensitive/i18n/ca.po @@ -0,0 +1,40 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_user_case_insensitive +# +# 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: Catalan (https://www.transifex.com/oca/teams/23907/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_user_case_insensitive +#: code:addons/auth_user_case_insensitive/hooks.py:0 +#, python-format +msgid "Conflicting user logins exist for `%s`" +msgstr "" + +#. module: auth_user_case_insensitive +#: model:ir.model.fields,field_description:auth_user_case_insensitive.field_res_users__login +msgid "Login" +msgstr "" + +#. module: auth_user_case_insensitive +#: model:ir.model.fields,help:auth_user_case_insensitive.field_res_users__login +msgid "Used to log into the system. Case insensitive." +msgstr "" + +#. module: auth_user_case_insensitive +#: model:ir.model,name:auth_user_case_insensitive.model_res_users +msgid "Users" +msgstr "Usuaris" diff --git a/auth_user_case_insensitive/i18n/da.po b/auth_user_case_insensitive/i18n/da.po new file mode 100644 index 0000000000..93293168d1 --- /dev/null +++ b/auth_user_case_insensitive/i18n/da.po @@ -0,0 +1,40 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_user_case_insensitive +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-05-17 21:08+0000\n" +"PO-Revision-Date: 2017-05-17 21:08+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Danish (https://www.transifex.com/oca/teams/23907/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_user_case_insensitive +#: code:addons/auth_user_case_insensitive/hooks.py:0 +#, python-format +msgid "Conflicting user logins exist for `%s`" +msgstr "" + +#. module: auth_user_case_insensitive +#: model:ir.model.fields,field_description:auth_user_case_insensitive.field_res_users__login +msgid "Login" +msgstr "" + +#. module: auth_user_case_insensitive +#: model:ir.model.fields,help:auth_user_case_insensitive.field_res_users__login +msgid "Used to log into the system. Case insensitive." +msgstr "" + +#. module: auth_user_case_insensitive +#: model:ir.model,name:auth_user_case_insensitive.model_res_users +msgid "Users" +msgstr "Brugere" diff --git a/auth_user_case_insensitive/i18n/de.po b/auth_user_case_insensitive/i18n/de.po new file mode 100644 index 0000000000..ecb24645b8 --- /dev/null +++ b/auth_user_case_insensitive/i18n/de.po @@ -0,0 +1,40 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_user_case_insensitive +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-05-17 21:08+0000\n" +"PO-Revision-Date: 2017-05-17 21:08+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_user_case_insensitive +#: code:addons/auth_user_case_insensitive/hooks.py:0 +#, python-format +msgid "Conflicting user logins exist for `%s`" +msgstr "" + +#. module: auth_user_case_insensitive +#: model:ir.model.fields,field_description:auth_user_case_insensitive.field_res_users__login +msgid "Login" +msgstr "" + +#. module: auth_user_case_insensitive +#: model:ir.model.fields,help:auth_user_case_insensitive.field_res_users__login +msgid "Used to log into the system. Case insensitive." +msgstr "" + +#. module: auth_user_case_insensitive +#: model:ir.model,name:auth_user_case_insensitive.model_res_users +msgid "Users" +msgstr "Benutzer" diff --git a/auth_user_case_insensitive/i18n/el_GR.po b/auth_user_case_insensitive/i18n/el_GR.po new file mode 100644 index 0000000000..b64e5a2b72 --- /dev/null +++ b/auth_user_case_insensitive/i18n/el_GR.po @@ -0,0 +1,41 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_user_case_insensitive +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-05-17 21:08+0000\n" +"PO-Revision-Date: 2017-05-17 21:08+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Greek (Greece) (https://www.transifex.com/oca/teams/23907/" +"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_user_case_insensitive +#: code:addons/auth_user_case_insensitive/hooks.py:0 +#, python-format +msgid "Conflicting user logins exist for `%s`" +msgstr "" + +#. module: auth_user_case_insensitive +#: model:ir.model.fields,field_description:auth_user_case_insensitive.field_res_users__login +msgid "Login" +msgstr "" + +#. module: auth_user_case_insensitive +#: model:ir.model.fields,help:auth_user_case_insensitive.field_res_users__login +msgid "Used to log into the system. Case insensitive." +msgstr "" + +#. module: auth_user_case_insensitive +#: model:ir.model,name:auth_user_case_insensitive.model_res_users +msgid "Users" +msgstr "Χρήστες" diff --git a/auth_user_case_insensitive/i18n/es.po b/auth_user_case_insensitive/i18n/es.po new file mode 100644 index 0000000000..a746e1cb30 --- /dev/null +++ b/auth_user_case_insensitive/i18n/es.po @@ -0,0 +1,40 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_user_case_insensitive +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-05-17 21:08+0000\n" +"PO-Revision-Date: 2017-05-17 21:08+0000\n" +"Last-Translator: OCA Transbot , 2017\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_user_case_insensitive +#: code:addons/auth_user_case_insensitive/hooks.py:0 +#, python-format +msgid "Conflicting user logins exist for `%s`" +msgstr "" + +#. module: auth_user_case_insensitive +#: model:ir.model.fields,field_description:auth_user_case_insensitive.field_res_users__login +msgid "Login" +msgstr "" + +#. module: auth_user_case_insensitive +#: model:ir.model.fields,help:auth_user_case_insensitive.field_res_users__login +msgid "Used to log into the system. Case insensitive." +msgstr "" + +#. module: auth_user_case_insensitive +#: model:ir.model,name:auth_user_case_insensitive.model_res_users +msgid "Users" +msgstr "Usuarios" diff --git a/auth_user_case_insensitive/i18n/es_ES.po b/auth_user_case_insensitive/i18n/es_ES.po new file mode 100644 index 0000000000..4b7df8be67 --- /dev/null +++ b/auth_user_case_insensitive/i18n/es_ES.po @@ -0,0 +1,41 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_user_case_insensitive +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-05-17 21:08+0000\n" +"PO-Revision-Date: 2017-05-17 21:08+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Spanish (Spain) (https://www.transifex.com/oca/teams/23907/" +"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_user_case_insensitive +#: code:addons/auth_user_case_insensitive/hooks.py:0 +#, python-format +msgid "Conflicting user logins exist for `%s`" +msgstr "" + +#. module: auth_user_case_insensitive +#: model:ir.model.fields,field_description:auth_user_case_insensitive.field_res_users__login +msgid "Login" +msgstr "" + +#. module: auth_user_case_insensitive +#: model:ir.model.fields,help:auth_user_case_insensitive.field_res_users__login +msgid "Used to log into the system. Case insensitive." +msgstr "" + +#. module: auth_user_case_insensitive +#: model:ir.model,name:auth_user_case_insensitive.model_res_users +msgid "Users" +msgstr "Usuarios" diff --git a/auth_user_case_insensitive/i18n/fi.po b/auth_user_case_insensitive/i18n/fi.po new file mode 100644 index 0000000000..5f482a757b --- /dev/null +++ b/auth_user_case_insensitive/i18n/fi.po @@ -0,0 +1,40 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_user_case_insensitive +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-05-17 21:08+0000\n" +"PO-Revision-Date: 2017-05-17 21:08+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Finnish (https://www.transifex.com/oca/teams/23907/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_user_case_insensitive +#: code:addons/auth_user_case_insensitive/hooks.py:0 +#, python-format +msgid "Conflicting user logins exist for `%s`" +msgstr "" + +#. module: auth_user_case_insensitive +#: model:ir.model.fields,field_description:auth_user_case_insensitive.field_res_users__login +msgid "Login" +msgstr "" + +#. module: auth_user_case_insensitive +#: model:ir.model.fields,help:auth_user_case_insensitive.field_res_users__login +msgid "Used to log into the system. Case insensitive." +msgstr "" + +#. module: auth_user_case_insensitive +#: model:ir.model,name:auth_user_case_insensitive.model_res_users +msgid "Users" +msgstr "Käyttäjät" diff --git a/auth_user_case_insensitive/i18n/fr.po b/auth_user_case_insensitive/i18n/fr.po new file mode 100644 index 0000000000..90b38d0455 --- /dev/null +++ b/auth_user_case_insensitive/i18n/fr.po @@ -0,0 +1,41 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_user_case_insensitive +# +# Translators: +# Nicolas JEUDY , 2017 +# OCA Transbot , 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: OCA Transbot , 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_user_case_insensitive +#: code:addons/auth_user_case_insensitive/hooks.py:0 +#, python-format +msgid "Conflicting user logins exist for `%s`" +msgstr "Des logins identiques existent pour `%s`" + +#. module: auth_user_case_insensitive +#: model:ir.model.fields,field_description:auth_user_case_insensitive.field_res_users__login +msgid "Login" +msgstr "" + +#. module: auth_user_case_insensitive +#: model:ir.model.fields,help:auth_user_case_insensitive.field_res_users__login +msgid "Used to log into the system. Case insensitive." +msgstr "" + +#. module: auth_user_case_insensitive +#: model:ir.model,name:auth_user_case_insensitive.model_res_users +msgid "Users" +msgstr "Utilisateurs" diff --git a/auth_user_case_insensitive/i18n/fr_CH.po b/auth_user_case_insensitive/i18n/fr_CH.po new file mode 100644 index 0000000000..54bc64f015 --- /dev/null +++ b/auth_user_case_insensitive/i18n/fr_CH.po @@ -0,0 +1,41 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_user_case_insensitive +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-05-17 21:08+0000\n" +"PO-Revision-Date: 2017-05-17 21:08+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: French (Switzerland) (https://www.transifex.com/oca/" +"teams/23907/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_user_case_insensitive +#: code:addons/auth_user_case_insensitive/hooks.py:0 +#, python-format +msgid "Conflicting user logins exist for `%s`" +msgstr "" + +#. module: auth_user_case_insensitive +#: model:ir.model.fields,field_description:auth_user_case_insensitive.field_res_users__login +msgid "Login" +msgstr "" + +#. module: auth_user_case_insensitive +#: model:ir.model.fields,help:auth_user_case_insensitive.field_res_users__login +msgid "Used to log into the system. Case insensitive." +msgstr "" + +#. module: auth_user_case_insensitive +#: model:ir.model,name:auth_user_case_insensitive.model_res_users +msgid "Users" +msgstr "Utilisateurs" diff --git a/auth_user_case_insensitive/i18n/fr_FR.po b/auth_user_case_insensitive/i18n/fr_FR.po new file mode 100644 index 0000000000..4bfb89886c --- /dev/null +++ b/auth_user_case_insensitive/i18n/fr_FR.po @@ -0,0 +1,41 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_user_case_insensitive +# +# Translators: +# Aurel , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-05-17 21:08+0000\n" +"PO-Revision-Date: 2017-05-17 21:08+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_user_case_insensitive +#: code:addons/auth_user_case_insensitive/hooks.py:0 +#, python-format +msgid "Conflicting user logins exist for `%s`" +msgstr "" + +#. module: auth_user_case_insensitive +#: model:ir.model.fields,field_description:auth_user_case_insensitive.field_res_users__login +msgid "Login" +msgstr "" + +#. module: auth_user_case_insensitive +#: model:ir.model.fields,help:auth_user_case_insensitive.field_res_users__login +msgid "Used to log into the system. Case insensitive." +msgstr "" + +#. module: auth_user_case_insensitive +#: model:ir.model,name:auth_user_case_insensitive.model_res_users +msgid "Users" +msgstr "Utilsateurs" diff --git a/auth_user_case_insensitive/i18n/hr.po b/auth_user_case_insensitive/i18n/hr.po new file mode 100644 index 0000000000..29c4dc1373 --- /dev/null +++ b/auth_user_case_insensitive/i18n/hr.po @@ -0,0 +1,42 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_user_case_insensitive +# +# 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_user_case_insensitive +#: code:addons/auth_user_case_insensitive/hooks.py:0 +#, python-format +msgid "Conflicting user logins exist for `%s`" +msgstr "Korisnička imena se preklapaju za `%s`" + +#. module: auth_user_case_insensitive +#: model:ir.model.fields,field_description:auth_user_case_insensitive.field_res_users__login +msgid "Login" +msgstr "" + +#. module: auth_user_case_insensitive +#: model:ir.model.fields,help:auth_user_case_insensitive.field_res_users__login +msgid "Used to log into the system. Case insensitive." +msgstr "" + +#. module: auth_user_case_insensitive +#: model:ir.model,name:auth_user_case_insensitive.model_res_users +msgid "Users" +msgstr "Korisnici" diff --git a/auth_user_case_insensitive/i18n/hr_HR.po b/auth_user_case_insensitive/i18n/hr_HR.po new file mode 100644 index 0000000000..2376da3358 --- /dev/null +++ b/auth_user_case_insensitive/i18n/hr_HR.po @@ -0,0 +1,42 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_user_case_insensitive +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-05-17 21:08+0000\n" +"PO-Revision-Date: 2017-05-17 21:08+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Croatian (Croatia) (https://www.transifex.com/oca/teams/23907/" +"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_user_case_insensitive +#: code:addons/auth_user_case_insensitive/hooks.py:0 +#, python-format +msgid "Conflicting user logins exist for `%s`" +msgstr "" + +#. module: auth_user_case_insensitive +#: model:ir.model.fields,field_description:auth_user_case_insensitive.field_res_users__login +msgid "Login" +msgstr "" + +#. module: auth_user_case_insensitive +#: model:ir.model.fields,help:auth_user_case_insensitive.field_res_users__login +msgid "Used to log into the system. Case insensitive." +msgstr "" + +#. module: auth_user_case_insensitive +#: model:ir.model,name:auth_user_case_insensitive.model_res_users +msgid "Users" +msgstr "Korisnici" diff --git a/auth_user_case_insensitive/i18n/it.po b/auth_user_case_insensitive/i18n/it.po new file mode 100644 index 0000000000..23918fdb1c --- /dev/null +++ b/auth_user_case_insensitive/i18n/it.po @@ -0,0 +1,40 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_user_case_insensitive +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-05-17 21:08+0000\n" +"PO-Revision-Date: 2017-05-17 21:08+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_user_case_insensitive +#: code:addons/auth_user_case_insensitive/hooks.py:0 +#, python-format +msgid "Conflicting user logins exist for `%s`" +msgstr "" + +#. module: auth_user_case_insensitive +#: model:ir.model.fields,field_description:auth_user_case_insensitive.field_res_users__login +msgid "Login" +msgstr "" + +#. module: auth_user_case_insensitive +#: model:ir.model.fields,help:auth_user_case_insensitive.field_res_users__login +msgid "Used to log into the system. Case insensitive." +msgstr "" + +#. module: auth_user_case_insensitive +#: model:ir.model,name:auth_user_case_insensitive.model_res_users +msgid "Users" +msgstr "Utenti" diff --git a/auth_user_case_insensitive/i18n/nl.po b/auth_user_case_insensitive/i18n/nl.po new file mode 100644 index 0000000000..16ddaecfdc --- /dev/null +++ b/auth_user_case_insensitive/i18n/nl.po @@ -0,0 +1,40 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_user_case_insensitive +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-05-17 21:08+0000\n" +"PO-Revision-Date: 2017-05-17 21:08+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Dutch (https://www.transifex.com/oca/teams/23907/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_user_case_insensitive +#: code:addons/auth_user_case_insensitive/hooks.py:0 +#, python-format +msgid "Conflicting user logins exist for `%s`" +msgstr "" + +#. module: auth_user_case_insensitive +#: model:ir.model.fields,field_description:auth_user_case_insensitive.field_res_users__login +msgid "Login" +msgstr "" + +#. module: auth_user_case_insensitive +#: model:ir.model.fields,help:auth_user_case_insensitive.field_res_users__login +msgid "Used to log into the system. Case insensitive." +msgstr "" + +#. module: auth_user_case_insensitive +#: model:ir.model,name:auth_user_case_insensitive.model_res_users +msgid "Users" +msgstr "Gebruikers" diff --git a/auth_user_case_insensitive/i18n/nl_NL.po b/auth_user_case_insensitive/i18n/nl_NL.po new file mode 100644 index 0000000000..1a4ee9117a --- /dev/null +++ b/auth_user_case_insensitive/i18n/nl_NL.po @@ -0,0 +1,41 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_user_case_insensitive +# +# Translators: +# Peter Hageman , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-06-22 01:11+0000\n" +"PO-Revision-Date: 2017-06-22 01:11+0000\n" +"Last-Translator: 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_user_case_insensitive +#: code:addons/auth_user_case_insensitive/hooks.py:0 +#, python-format +msgid "Conflicting user logins exist for `%s`" +msgstr "" + +#. module: auth_user_case_insensitive +#: model:ir.model.fields,field_description:auth_user_case_insensitive.field_res_users__login +msgid "Login" +msgstr "" + +#. module: auth_user_case_insensitive +#: model:ir.model.fields,help:auth_user_case_insensitive.field_res_users__login +msgid "Used to log into the system. Case insensitive." +msgstr "" + +#. module: auth_user_case_insensitive +#: model:ir.model,name:auth_user_case_insensitive.model_res_users +msgid "Users" +msgstr "Gebruikers" diff --git a/auth_user_case_insensitive/i18n/pt.po b/auth_user_case_insensitive/i18n/pt.po new file mode 100644 index 0000000000..6d77dadaf4 --- /dev/null +++ b/auth_user_case_insensitive/i18n/pt.po @@ -0,0 +1,40 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_user_case_insensitive +# +# 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: 2017-08-01 02:43+0000\n" +"Last-Translator: Pedro Castro Silva , 2017\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" + +#. module: auth_user_case_insensitive +#: code:addons/auth_user_case_insensitive/hooks.py:0 +#, python-format +msgid "Conflicting user logins exist for `%s`" +msgstr "" + +#. module: auth_user_case_insensitive +#: model:ir.model.fields,field_description:auth_user_case_insensitive.field_res_users__login +msgid "Login" +msgstr "" + +#. module: auth_user_case_insensitive +#: model:ir.model.fields,help:auth_user_case_insensitive.field_res_users__login +msgid "Used to log into the system. Case insensitive." +msgstr "" + +#. module: auth_user_case_insensitive +#: model:ir.model,name:auth_user_case_insensitive.model_res_users +msgid "Users" +msgstr "Utilizadores" diff --git a/auth_user_case_insensitive/i18n/pt_BR.po b/auth_user_case_insensitive/i18n/pt_BR.po new file mode 100644 index 0000000000..30fe408dea --- /dev/null +++ b/auth_user_case_insensitive/i18n/pt_BR.po @@ -0,0 +1,41 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_user_case_insensitive +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-05-17 21:08+0000\n" +"PO-Revision-Date: 2017-05-17 21:08+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_user_case_insensitive +#: code:addons/auth_user_case_insensitive/hooks.py:0 +#, python-format +msgid "Conflicting user logins exist for `%s`" +msgstr "" + +#. module: auth_user_case_insensitive +#: model:ir.model.fields,field_description:auth_user_case_insensitive.field_res_users__login +msgid "Login" +msgstr "" + +#. module: auth_user_case_insensitive +#: model:ir.model.fields,help:auth_user_case_insensitive.field_res_users__login +msgid "Used to log into the system. Case insensitive." +msgstr "" + +#. module: auth_user_case_insensitive +#: model:ir.model,name:auth_user_case_insensitive.model_res_users +msgid "Users" +msgstr "Usuários" diff --git a/auth_user_case_insensitive/i18n/ro.po b/auth_user_case_insensitive/i18n/ro.po new file mode 100644 index 0000000000..d2116042a0 --- /dev/null +++ b/auth_user_case_insensitive/i18n/ro.po @@ -0,0 +1,41 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_user_case_insensitive +# +# Translators: +# Daniel Schweiger , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-06-22 01:11+0000\n" +"PO-Revision-Date: 2017-06-22 01:11+0000\n" +"Last-Translator: Daniel Schweiger , 2017\n" +"Language-Team: Romanian (https://www.transifex.com/oca/teams/23907/ro/)\n" +"Language: ro\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" + +#. module: auth_user_case_insensitive +#: code:addons/auth_user_case_insensitive/hooks.py:0 +#, python-format +msgid "Conflicting user logins exist for `%s`" +msgstr " Exista un conflict de registru pentru `%s`" + +#. module: auth_user_case_insensitive +#: model:ir.model.fields,field_description:auth_user_case_insensitive.field_res_users__login +msgid "Login" +msgstr "" + +#. module: auth_user_case_insensitive +#: model:ir.model.fields,help:auth_user_case_insensitive.field_res_users__login +msgid "Used to log into the system. Case insensitive." +msgstr "" + +#. module: auth_user_case_insensitive +#: model:ir.model,name:auth_user_case_insensitive.model_res_users +msgid "Users" +msgstr "Utilizatori" diff --git a/auth_user_case_insensitive/i18n/sl.po b/auth_user_case_insensitive/i18n/sl.po new file mode 100644 index 0000000000..d76b0c3160 --- /dev/null +++ b/auth_user_case_insensitive/i18n/sl.po @@ -0,0 +1,41 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_user_case_insensitive +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-05-17 21:08+0000\n" +"PO-Revision-Date: 2017-05-17 21:08+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_user_case_insensitive +#: code:addons/auth_user_case_insensitive/hooks.py:0 +#, python-format +msgid "Conflicting user logins exist for `%s`" +msgstr "" + +#. module: auth_user_case_insensitive +#: model:ir.model.fields,field_description:auth_user_case_insensitive.field_res_users__login +msgid "Login" +msgstr "" + +#. module: auth_user_case_insensitive +#: model:ir.model.fields,help:auth_user_case_insensitive.field_res_users__login +msgid "Used to log into the system. Case insensitive." +msgstr "" + +#. module: auth_user_case_insensitive +#: model:ir.model,name:auth_user_case_insensitive.model_res_users +msgid "Users" +msgstr "Uporabniki" diff --git a/auth_user_case_insensitive/i18n/tr.po b/auth_user_case_insensitive/i18n/tr.po new file mode 100644 index 0000000000..7070986452 --- /dev/null +++ b/auth_user_case_insensitive/i18n/tr.po @@ -0,0 +1,40 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_user_case_insensitive +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-05-17 21:08+0000\n" +"PO-Revision-Date: 2017-05-17 21:08+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_user_case_insensitive +#: code:addons/auth_user_case_insensitive/hooks.py:0 +#, python-format +msgid "Conflicting user logins exist for `%s`" +msgstr "" + +#. module: auth_user_case_insensitive +#: model:ir.model.fields,field_description:auth_user_case_insensitive.field_res_users__login +msgid "Login" +msgstr "" + +#. module: auth_user_case_insensitive +#: model:ir.model.fields,help:auth_user_case_insensitive.field_res_users__login +msgid "Used to log into the system. Case insensitive." +msgstr "" + +#. module: auth_user_case_insensitive +#: model:ir.model,name:auth_user_case_insensitive.model_res_users +msgid "Users" +msgstr "Kullanıcılar" diff --git a/auth_user_case_insensitive/i18n/tr_TR.po b/auth_user_case_insensitive/i18n/tr_TR.po new file mode 100644 index 0000000000..e44b19e387 --- /dev/null +++ b/auth_user_case_insensitive/i18n/tr_TR.po @@ -0,0 +1,41 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_user_case_insensitive +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-05-17 21:08+0000\n" +"PO-Revision-Date: 2017-05-17 21:08+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Turkish (Turkey) (https://www.transifex.com/oca/teams/23907/" +"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_user_case_insensitive +#: code:addons/auth_user_case_insensitive/hooks.py:0 +#, python-format +msgid "Conflicting user logins exist for `%s`" +msgstr "" + +#. module: auth_user_case_insensitive +#: model:ir.model.fields,field_description:auth_user_case_insensitive.field_res_users__login +msgid "Login" +msgstr "" + +#. module: auth_user_case_insensitive +#: model:ir.model.fields,help:auth_user_case_insensitive.field_res_users__login +msgid "Used to log into the system. Case insensitive." +msgstr "" + +#. module: auth_user_case_insensitive +#: model:ir.model,name:auth_user_case_insensitive.model_res_users +msgid "Users" +msgstr "Kullanıcılar" diff --git a/auth_user_case_insensitive/i18n/zh_CN.po b/auth_user_case_insensitive/i18n/zh_CN.po new file mode 100644 index 0000000000..7242ab4092 --- /dev/null +++ b/auth_user_case_insensitive/i18n/zh_CN.po @@ -0,0 +1,41 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_user_case_insensitive +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-05-17 21:08+0000\n" +"PO-Revision-Date: 2017-05-17 21:08+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Chinese (China) (https://www.transifex.com/oca/teams/23907/" +"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_user_case_insensitive +#: code:addons/auth_user_case_insensitive/hooks.py:0 +#, python-format +msgid "Conflicting user logins exist for `%s`" +msgstr "" + +#. module: auth_user_case_insensitive +#: model:ir.model.fields,field_description:auth_user_case_insensitive.field_res_users__login +msgid "Login" +msgstr "" + +#. module: auth_user_case_insensitive +#: model:ir.model.fields,help:auth_user_case_insensitive.field_res_users__login +msgid "Used to log into the system. Case insensitive." +msgstr "" + +#. module: auth_user_case_insensitive +#: model:ir.model,name:auth_user_case_insensitive.model_res_users +msgid "Users" +msgstr "用户" diff --git a/auth_user_case_insensitive/models/__init__.py b/auth_user_case_insensitive/models/__init__.py new file mode 100644 index 0000000000..e5a2663b80 --- /dev/null +++ b/auth_user_case_insensitive/models/__init__.py @@ -0,0 +1,5 @@ +# Copyright 2015-2017 LasLabs Inc. +# Copyright 2021 Open Source Integrators +# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html). + +from . import res_users diff --git a/auth_user_case_insensitive/models/res_users.py b/auth_user_case_insensitive/models/res_users.py new file mode 100644 index 0000000000..2b1b964141 --- /dev/null +++ b/auth_user_case_insensitive/models/res_users.py @@ -0,0 +1,34 @@ +# Copyright 2015-2017 LasLabs Inc. +# Copyright 2021 Open Source Integrators +# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html). + +from odoo import api, fields, models + + +class ResUsers(models.Model): + + _inherit = "res.users" + + login = fields.Char(help="Used to log into the system. Case insensitive.") + + @classmethod + def _login(cls, db, login, password, user_agent_env): + """Overload _login to lowercase the `login` before passing to the + super""" + login = login.lower() + return super(ResUsers, cls)._login( + db, login, password, user_agent_env=user_agent_env + ) + + @api.model_create_multi + def create(self, vals_list): + """Overload create multiple to lowercase login""" + for val in vals_list: + val["login"] = val.get("login", "").lower() + return super(ResUsers, self).create(vals_list) + + def write(self, vals): + """Overload write to lowercase login""" + if vals.get("login"): + vals["login"] = vals["login"].lower() + return super(ResUsers, self).write(vals) diff --git a/auth_user_case_insensitive/readme/CONTRIBUTORS.rst b/auth_user_case_insensitive/readme/CONTRIBUTORS.rst new file mode 100644 index 0000000000..7b563facde --- /dev/null +++ b/auth_user_case_insensitive/readme/CONTRIBUTORS.rst @@ -0,0 +1,4 @@ +* Dave Lasley +* Ted Salmon +* Mayank Gosai +* Chandresh Thakkar diff --git a/auth_user_case_insensitive/readme/DESCRIPTION.rst b/auth_user_case_insensitive/readme/DESCRIPTION.rst new file mode 100644 index 0000000000..d91984716b --- /dev/null +++ b/auth_user_case_insensitive/readme/DESCRIPTION.rst @@ -0,0 +1,3 @@ +This module makes user logins case insensitive. It also overwrites the +search method to allow these case insensitive logins to work on a database +that previously had case sensitive logins. diff --git a/auth_user_case_insensitive/readme/INSTALL.rst b/auth_user_case_insensitive/readme/INSTALL.rst new file mode 100644 index 0000000000..16f1d1cdd8 --- /dev/null +++ b/auth_user_case_insensitive/readme/INSTALL.rst @@ -0,0 +1,3 @@ +Install this module as you would any other. No further configuration is required. + +Note that upon installation the existing logins will all be converted to lowercase. diff --git a/auth_user_case_insensitive/readme/USAGE.rst b/auth_user_case_insensitive/readme/USAGE.rst new file mode 100644 index 0000000000..cbf2a7fcbe --- /dev/null +++ b/auth_user_case_insensitive/readme/USAGE.rst @@ -0,0 +1,3 @@ +.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas + :alt: Steps to test the module + :target: https://runbot.odoo-community.org/runbot/167/11.0 diff --git a/auth_user_case_insensitive/static/description/icon.png b/auth_user_case_insensitive/static/description/icon.png new file mode 100644 index 0000000000..3a0328b516 Binary files /dev/null and b/auth_user_case_insensitive/static/description/icon.png differ diff --git a/auth_user_case_insensitive/static/description/index.html b/auth_user_case_insensitive/static/description/index.html new file mode 100644 index 0000000000..767e81c075 --- /dev/null +++ b/auth_user_case_insensitive/static/description/index.html @@ -0,0 +1,435 @@ + + + + + + +Case Insensitive Logins + + + +
+

Case Insensitive Logins

+ + +

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

+

This module makes user logins case insensitive. It also overwrites the +search method to allow these case insensitive logins to work on a database +that previously had case sensitive logins.

+

Table of contents

+ +
+

Installation

+

Install this module as you would any other. No further configuration is required.

+

Note that upon installation the existing logins will all be converted to lowercase.

+
+
+

Usage

+Steps to test the module +
+
+

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

+
    +
  • LasLabs
  • +
+
+
+

Contributors

+ +
+
+

Maintainers

+

This module is maintained by the OCA.

+Odoo Community Association +

OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use.

+

This module is part of the OCA/server-auth project on GitHub.

+

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

+
+
+
+ + diff --git a/auth_user_case_insensitive/tests/__init__.py b/auth_user_case_insensitive/tests/__init__.py new file mode 100644 index 0000000000..6b32764e31 --- /dev/null +++ b/auth_user_case_insensitive/tests/__init__.py @@ -0,0 +1,5 @@ +# Copyright 2015-2017 LasLabs Inc. +# Copyright 2021 Open Source Integrators +# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html). + +from . import test_res_users diff --git a/auth_user_case_insensitive/tests/test_res_users.py b/auth_user_case_insensitive/tests/test_res_users.py new file mode 100644 index 0000000000..22120a600c --- /dev/null +++ b/auth_user_case_insensitive/tests/test_res_users.py @@ -0,0 +1,73 @@ +# Copyright 2015-2017 LasLabs Inc. +# Copyright 2021 Open Source Integrators +# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html). + +from odoo import api, registry +from odoo.tests.common import TransactionCase +from odoo.tools import mute_logger + + +class TestResUsers(TransactionCase): + def setUp(self): + super(TestResUsers, self).setUp() + self.login = "LasLabs@ExAmPlE.CoM" + self.partner_vals = { + "name": "Partner", + "is_company": False, + "email": self.login, + } + self.vals = {"name": "User", "login": self.login, "password": "password"} + self.model_obj = self.env["res.users"] + + def _new_record(self): + """It should enerate a new record to test with""" + partner_id = self.env["res.partner"].create(self.partner_vals) + self.vals["partner_id"] = partner_id.id + return self.model_obj.create(self.vals) + + def test_login_is_lowercased_on_create(self): + """It should verify the login is set to lowercase on create""" + rec_id = self._new_record() + self.assertEqual( + self.login.lower(), + rec_id.login, + "Login was not lowercased when saved to db.", + ) + + def test_login_is_lowercased_on_write(self): + """It should verify the login is set to lowercase on write""" + rec_id = self._new_record() + rec_id.write({"login": self.login}) + self.assertEqual( + self.login.lower(), + rec_id.login, + "Login was not lowercased when saved to db.", + ) + + def test_login_login_is_lowercased(self): + """It should verify the login is set to lowercase on login""" + rec_id = self._new_record() + # We have to commit this cursor, because `_login` uses a fresh cursor + self.env.cr.commit() + with mute_logger("odoo.addons.auth_ldap.models.res_company_ldap"): + res_id = self.model_obj._login( + self.env.registry.db_name, + self.login.upper(), + "password", + {"interactive": True}, + ) + # Now clean up our mess to preserve idempotence + with api.Environment.manage(): + with registry(self.env.registry.db_name).cursor() as new_cr: + new_cr.execute( + "DELETE FROM res_users WHERE \ + login='%s'" + % self.login.lower() + ) + new_cr.commit() + self.assertEqual( + rec_id.id, + res_id, + "Login with with uppercase chars was not \ + successful", + )