diff --git a/auth_user_case_insensitive/README.rst b/auth_user_case_insensitive/README.rst new file mode 100644 index 0000000000..a102dfaa64 --- /dev/null +++ b/auth_user_case_insensitive/README.rst @@ -0,0 +1,99 @@ +======================= +Case Insensitive Logins +======================= + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:191e82e2a345b4dab163f77be2535319c23f64fb605fdba6bb24f8b4d0948c4e + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |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/18.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-18-0/server-auth-18-0-auth_user_case_insensitive + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/server-auth&target_branch=18.0 + :alt: Try me on Runboat + +|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 +===== + +|Steps to test the module| + +.. |Steps to test the module| image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas + :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 to smash 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 +- Moncef Arajdal + +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..2b16fba3b5 --- /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": "18.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..dda15e8057 --- /dev/null +++ b/auth_user_case_insensitive/hooks.py @@ -0,0 +1,34 @@ +# 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(env): + """This hook will look to see if any conflicting logins exist before + the module is installed + :param env: + Environment. + """ + with env.cr.savepoint(): + users = [] + env.cr.execute("SELECT login FROM res_users") + for user in env.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(env): + """After the module is installed, set all logins to lowercase + :param env: + Environment. + """ + with env.cr.savepoint(): + env.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..317efae420 --- /dev/null +++ b/auth_user_case_insensitive/i18n/ar.po @@ -0,0 +1,45 @@ +# 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 +#. odoo-python +#: 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 "User" +msgstr "" + +#~ 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..2a038bc193 --- /dev/null +++ b/auth_user_case_insensitive/i18n/auth_user_case_insensitive.pot @@ -0,0 +1,36 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_user_case_insensitive +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.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 +#. odoo-python +#: 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 "User" +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..6ef145f2c8 --- /dev/null +++ b/auth_user_case_insensitive/i18n/ca.po @@ -0,0 +1,44 @@ +# 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 +#. odoo-python +#: 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 "User" +msgstr "" + +#~ 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..fc148b3530 --- /dev/null +++ b/auth_user_case_insensitive/i18n/da.po @@ -0,0 +1,44 @@ +# 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 +#. odoo-python +#: 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 "User" +msgstr "" + +#~ 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..935bdd8254 --- /dev/null +++ b/auth_user_case_insensitive/i18n/de.po @@ -0,0 +1,44 @@ +# 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 +#. odoo-python +#: 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 "User" +msgstr "" + +#~ 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..761496d8b4 --- /dev/null +++ b/auth_user_case_insensitive/i18n/el_GR.po @@ -0,0 +1,45 @@ +# 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 +#. odoo-python +#: 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 "User" +msgstr "" + +#~ 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..a6a45a58b7 --- /dev/null +++ b/auth_user_case_insensitive/i18n/es.po @@ -0,0 +1,47 @@ +# 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: 2023-09-02 19:25+0000\n" +"Last-Translator: Ivorra78 \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" +"X-Generator: Weblate 4.17\n" + +#. module: auth_user_case_insensitive +#. odoo-python +#: code:addons/auth_user_case_insensitive/hooks.py:0 +#, python-format +msgid "Conflicting user logins exist for `%s`" +msgstr "Existen inicios de sesión de usuario conflictivos para `%s`" + +#. module: auth_user_case_insensitive +#: model:ir.model.fields,field_description:auth_user_case_insensitive.field_res_users__login +msgid "Login" +msgstr "Iniciar sesión" + +#. 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 "" +"Se utiliza para iniciar sesión en el sistema. No distingue entre mayúsculas " +"y minúsculas." + +#. module: auth_user_case_insensitive +#: model:ir.model,name:auth_user_case_insensitive.model_res_users +msgid "User" +msgstr "Usuario" + +#~ 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..28290b7c5c --- /dev/null +++ b/auth_user_case_insensitive/i18n/es_ES.po @@ -0,0 +1,45 @@ +# 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 +#. odoo-python +#: 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 "User" +msgstr "" + +#~ 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..e5d10176b6 --- /dev/null +++ b/auth_user_case_insensitive/i18n/fi.po @@ -0,0 +1,44 @@ +# 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 +#. odoo-python +#: 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 "User" +msgstr "" + +#~ 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..e3a8e4b71a --- /dev/null +++ b/auth_user_case_insensitive/i18n/fr.po @@ -0,0 +1,45 @@ +# 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 +#. odoo-python +#: 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 "User" +msgstr "" + +#~ 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..73d3af7b49 --- /dev/null +++ b/auth_user_case_insensitive/i18n/fr_CH.po @@ -0,0 +1,45 @@ +# 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 +#. odoo-python +#: 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 "User" +msgstr "" + +#~ 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..39bf25f1b5 --- /dev/null +++ b/auth_user_case_insensitive/i18n/fr_FR.po @@ -0,0 +1,45 @@ +# 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 +#. odoo-python +#: 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 "User" +msgstr "" + +#~ 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..12e1b847aa --- /dev/null +++ b/auth_user_case_insensitive/i18n/hr.po @@ -0,0 +1,46 @@ +# 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 +#. odoo-python +#: 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 "User" +msgstr "" + +#~ 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..e672df8072 --- /dev/null +++ b/auth_user_case_insensitive/i18n/hr_HR.po @@ -0,0 +1,46 @@ +# 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 +#. odoo-python +#: 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 "User" +msgstr "" + +#~ 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..4dde7cc770 --- /dev/null +++ b/auth_user_case_insensitive/i18n/it.po @@ -0,0 +1,46 @@ +# 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: 2024-01-03 14:33+0000\n" +"Last-Translator: mymage \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" +"X-Generator: Weblate 4.17\n" + +#. module: auth_user_case_insensitive +#. odoo-python +#: code:addons/auth_user_case_insensitive/hooks.py:0 +#, python-format +msgid "Conflicting user logins exist for `%s`" +msgstr "Esiste un conflitto di accessi per l'utente '%s'" + +#. module: auth_user_case_insensitive +#: model:ir.model.fields,field_description:auth_user_case_insensitive.field_res_users__login +msgid "Login" +msgstr "Login" + +#. 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 "" +"Utilizzato per l'accesso al sistema. Insensibile a maiuscole/minuscole." + +#. module: auth_user_case_insensitive +#: model:ir.model,name:auth_user_case_insensitive.model_res_users +msgid "User" +msgstr "Utente" + +#~ msgid "Users" +#~ msgstr "Utenti" diff --git a/auth_user_case_insensitive/i18n/lt.po b/auth_user_case_insensitive/i18n/lt.po new file mode 100644 index 0000000000..ee00d3e0e5 --- /dev/null +++ b/auth_user_case_insensitive/i18n/lt.po @@ -0,0 +1,42 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * auth_user_case_insensitive +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 15.0+e\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-04-07 08:58+0000\n" +"PO-Revision-Date: 2022-04-07 08:58+0000\n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: \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 +#. odoo-python +#: code:addons/auth_user_case_insensitive/hooks.py:0 +#, python-format +msgid "Conflicting user logins exist for `%s`" +msgstr "Egzistuoja keli vartotojai su prisijungimu `%s`" + +#. module: auth_user_case_insensitive +#: model:ir.model.fields,field_description:auth_user_case_insensitive.field_res_users__login +msgid "Login" +msgstr "Prisijungimas" + +#. 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 "Naudojamas prisijungti į sistemą. Raidžių dydis nesvarbus." + +#. module: auth_user_case_insensitive +#: model:ir.model,name:auth_user_case_insensitive.model_res_users +msgid "User" +msgstr "" + +#~ msgid "Users" +#~ msgstr "Vartotojai" diff --git a/auth_user_case_insensitive/i18n/nl.po b/auth_user_case_insensitive/i18n/nl.po new file mode 100644 index 0000000000..ad45fc8da5 --- /dev/null +++ b/auth_user_case_insensitive/i18n/nl.po @@ -0,0 +1,44 @@ +# 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 +#. odoo-python +#: 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 "User" +msgstr "" + +#~ 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..327ca4fbdd --- /dev/null +++ b/auth_user_case_insensitive/i18n/nl_NL.po @@ -0,0 +1,45 @@ +# 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 +#. odoo-python +#: 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 "User" +msgstr "" + +#~ 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..c5ac79a85f --- /dev/null +++ b/auth_user_case_insensitive/i18n/pt.po @@ -0,0 +1,44 @@ +# 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 +#. odoo-python +#: 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 "User" +msgstr "" + +#~ 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..796f08a2f2 --- /dev/null +++ b/auth_user_case_insensitive/i18n/pt_BR.po @@ -0,0 +1,45 @@ +# 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 +#. odoo-python +#: 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 "User" +msgstr "" + +#~ 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..d88dda44b2 --- /dev/null +++ b/auth_user_case_insensitive/i18n/ro.po @@ -0,0 +1,45 @@ +# 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 +#. odoo-python +#: 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 "User" +msgstr "" + +#~ 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..336a0df979 --- /dev/null +++ b/auth_user_case_insensitive/i18n/sl.po @@ -0,0 +1,45 @@ +# 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 +#. odoo-python +#: 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 "User" +msgstr "" + +#~ 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..cadc8c74ae --- /dev/null +++ b/auth_user_case_insensitive/i18n/tr.po @@ -0,0 +1,44 @@ +# 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 +#. odoo-python +#: 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 "User" +msgstr "" + +#~ 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..75103fba69 --- /dev/null +++ b/auth_user_case_insensitive/i18n/tr_TR.po @@ -0,0 +1,45 @@ +# 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 +#. odoo-python +#: 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 "User" +msgstr "" + +#~ 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..1a1cbbcc9b --- /dev/null +++ b/auth_user_case_insensitive/i18n/zh_CN.po @@ -0,0 +1,45 @@ +# 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 +#. odoo-python +#: 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 "User" +msgstr "" + +#~ 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..049ae4c41b --- /dev/null +++ b/auth_user_case_insensitive/models/res_users.py @@ -0,0 +1,30 @@ +# 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, models + + +class ResUsers(models.Model): + _inherit = "res.users" + + @classmethod + def _login(cls, db, credential, user_agent_env): + """Overload _login to lowercase the `login` before passing to the + super.""" + if isinstance(credential, dict) and credential.get("login"): + credential["login"] = credential["login"].lower() + return super()._login(db, credential, 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().create(vals_list) + + def write(self, vals): + """Overload write to lowercase login.""" + if vals.get("login"): + vals["login"] = vals["login"].lower() + return super().write(vals) diff --git a/auth_user_case_insensitive/pyproject.toml b/auth_user_case_insensitive/pyproject.toml new file mode 100644 index 0000000000..4231d0cccb --- /dev/null +++ b/auth_user_case_insensitive/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/auth_user_case_insensitive/readme/CONTRIBUTORS.md b/auth_user_case_insensitive/readme/CONTRIBUTORS.md new file mode 100644 index 0000000000..5a8a2045f1 --- /dev/null +++ b/auth_user_case_insensitive/readme/CONTRIBUTORS.md @@ -0,0 +1,4 @@ +- Dave Lasley \<\> +- Ted Salmon \<\> +- Mayank Gosai \<\> +- Chandresh Thakkar \<\> diff --git a/auth_user_case_insensitive/readme/DESCRIPTION.md b/auth_user_case_insensitive/readme/DESCRIPTION.md new file mode 100644 index 0000000000..5ead8d567c --- /dev/null +++ b/auth_user_case_insensitive/readme/DESCRIPTION.md @@ -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.md b/auth_user_case_insensitive/readme/INSTALL.md new file mode 100644 index 0000000000..f81f487eac --- /dev/null +++ b/auth_user_case_insensitive/readme/INSTALL.md @@ -0,0 +1,5 @@ +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.md b/auth_user_case_insensitive/readme/USAGE.md new file mode 100644 index 0000000000..d13d3f3efb --- /dev/null +++ b/auth_user_case_insensitive/readme/USAGE.md @@ -0,0 +1 @@ +[![Steps to test the module](https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas)](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..d4ed60d684 --- /dev/null +++ b/auth_user_case_insensitive/static/description/index.html @@ -0,0 +1,441 @@ + + + + + +Case Insensitive Logins + + + +
+

Case Insensitive Logins

+ + +

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

+

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 to smash 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..694d93fe6c --- /dev/null +++ b/auth_user_case_insensitive/tests/test_res_users.py @@ -0,0 +1,58 @@ +# 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.tests.common import TransactionCase + + +class TestResUsers(TransactionCase): + def setUp(self): + super().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): + """Gnerate 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): + """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): + """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): + """Verify the login is set to lowercase on login.""" + rec_id = self.env.ref("base.user_admin") # Get the admin user reference + credentials = {"type": "password", "login": "AdMiN", "password": "admin"} + res_id = self.model_obj._login( + self.env.cr.dbname, + credentials, + {"interactive": True}, + ) + self.assertEqual( + rec_id.id, + res_id.get("uid"), + "Login with uppercase chars was not successful", + )