summaryrefslogtreecommitdiff
path: root/addons/auth_totp_portal
diff options
context:
space:
mode:
authorstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
committerstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
commit3751379f1e9a4c215fb6eb898b4ccc67659b9ace (patch)
treea44932296ef4a9b71d5f010906253d8c53727726 /addons/auth_totp_portal
parent0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff)
initial commit 2
Diffstat (limited to 'addons/auth_totp_portal')
-rw-r--r--addons/auth_totp_portal/__init__.py1
-rw-r--r--addons/auth_totp_portal/__manifest__.py11
-rw-r--r--addons/auth_totp_portal/i18n/ar.po54
-rw-r--r--addons/auth_totp_portal/i18n/auth_totp_portal.pot54
-rw-r--r--addons/auth_totp_portal/i18n/bg.po54
-rw-r--r--addons/auth_totp_portal/i18n/bn.po54
-rw-r--r--addons/auth_totp_portal/i18n/ca.po54
-rw-r--r--addons/auth_totp_portal/i18n/ckb.po54
-rw-r--r--addons/auth_totp_portal/i18n/cs.po65
-rw-r--r--addons/auth_totp_portal/i18n/da.po64
-rw-r--r--addons/auth_totp_portal/i18n/de.po64
-rw-r--r--addons/auth_totp_portal/i18n/el.po54
-rw-r--r--addons/auth_totp_portal/i18n/eo.po54
-rw-r--r--addons/auth_totp_portal/i18n/es.po64
-rw-r--r--addons/auth_totp_portal/i18n/es_MX.po64
-rw-r--r--addons/auth_totp_portal/i18n/et.po65
-rw-r--r--addons/auth_totp_portal/i18n/eu.po54
-rw-r--r--addons/auth_totp_portal/i18n/fa.po54
-rw-r--r--addons/auth_totp_portal/i18n/fi.po54
-rw-r--r--addons/auth_totp_portal/i18n/fr.po66
-rw-r--r--addons/auth_totp_portal/i18n/he.po54
-rw-r--r--addons/auth_totp_portal/i18n/hi.po54
-rw-r--r--addons/auth_totp_portal/i18n/hr.po54
-rw-r--r--addons/auth_totp_portal/i18n/hu.po64
-rw-r--r--addons/auth_totp_portal/i18n/id.po64
-rw-r--r--addons/auth_totp_portal/i18n/it.po64
-rw-r--r--addons/auth_totp_portal/i18n/ja.po65
-rw-r--r--addons/auth_totp_portal/i18n/ka.po54
-rw-r--r--addons/auth_totp_portal/i18n/km.po54
-rw-r--r--addons/auth_totp_portal/i18n/ko.po54
-rw-r--r--addons/auth_totp_portal/i18n/lt.po65
-rw-r--r--addons/auth_totp_portal/i18n/lv.po54
-rw-r--r--addons/auth_totp_portal/i18n/mn.po54
-rw-r--r--addons/auth_totp_portal/i18n/nb.po54
-rw-r--r--addons/auth_totp_portal/i18n/nl.po64
-rw-r--r--addons/auth_totp_portal/i18n/pl.po54
-rw-r--r--addons/auth_totp_portal/i18n/pt.po54
-rw-r--r--addons/auth_totp_portal/i18n/pt_BR.po64
-rw-r--r--addons/auth_totp_portal/i18n/ro.po65
-rw-r--r--addons/auth_totp_portal/i18n/ru.po58
-rw-r--r--addons/auth_totp_portal/i18n/si.po54
-rw-r--r--addons/auth_totp_portal/i18n/sk.po54
-rw-r--r--addons/auth_totp_portal/i18n/sl.po54
-rw-r--r--addons/auth_totp_portal/i18n/sv.po54
-rw-r--r--addons/auth_totp_portal/i18n/th.po54
-rw-r--r--addons/auth_totp_portal/i18n/tr.po64
-rw-r--r--addons/auth_totp_portal/i18n/uk.po64
-rw-r--r--addons/auth_totp_portal/i18n/ur.po54
-rw-r--r--addons/auth_totp_portal/i18n/vi.po58
-rw-r--r--addons/auth_totp_portal/i18n/zh_CN.po64
-rw-r--r--addons/auth_totp_portal/i18n/zh_TW.po64
-rw-r--r--addons/auth_totp_portal/security/security.xml16
-rw-r--r--addons/auth_totp_portal/static/src/js/totp_frontend.js221
-rw-r--r--addons/auth_totp_portal/static/tests/totp_portal.js124
-rw-r--r--addons/auth_totp_portal/tests/__init__.py1
-rw-r--r--addons/auth_totp_portal/tests/test_tour.py44
-rw-r--r--addons/auth_totp_portal/views/templates.xml48
57 files changed, 3317 insertions, 0 deletions
diff --git a/addons/auth_totp_portal/__init__.py b/addons/auth_totp_portal/__init__.py
new file mode 100644
index 00000000..40a96afc
--- /dev/null
+++ b/addons/auth_totp_portal/__init__.py
@@ -0,0 +1 @@
+# -*- coding: utf-8 -*-
diff --git a/addons/auth_totp_portal/__manifest__.py b/addons/auth_totp_portal/__manifest__.py
new file mode 100644
index 00000000..435d53d2
--- /dev/null
+++ b/addons/auth_totp_portal/__manifest__.py
@@ -0,0 +1,11 @@
+{
+ 'name': "TOTPortal",
+ 'category': 'Hidden',
+ 'depends': ['portal', 'auth_totp'],
+ 'auto_install': True,
+ 'data': [
+ 'security/security.xml',
+ 'views/templates.xml',
+ ],
+ 'license': 'LGPL-3',
+}
diff --git a/addons/auth_totp_portal/i18n/ar.po b/addons/auth_totp_portal/i18n/ar.po
new file mode 100644
index 00000000..f1e4ab9d
--- /dev/null
+++ b/addons/auth_totp_portal/i18n/ar.po
@@ -0,0 +1,54 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * auth_totp_portal
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 14.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-29 13:45+0000\n"
+"PO-Revision-Date: 2020-10-05 06:30+0000\n"
+"Language-Team: Arabic (https://www.transifex.com/odoo/teams/41243/ar/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: ar\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_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "(Disable two-factor authentication)"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<i class=\"fa fa-warning\"/>\n"
+" Two-factor authentication not enabled"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<span class=\"text-success\">\n"
+" <i class=\"fa fa-check-circle\"/>\n"
+" Two-factor authentication enabled\n"
+" </span>"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Enable two-factor authentication"
+msgstr ""
+
+#. module: auth_totp_portal
+#. openerp-web
+#: code:addons/auth_totp_portal/static/src/js/totp_frontend.js:0
+#, python-format
+msgid "Operation failed for unknown reason."
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Two-factor authentication"
+msgstr ""
diff --git a/addons/auth_totp_portal/i18n/auth_totp_portal.pot b/addons/auth_totp_portal/i18n/auth_totp_portal.pot
new file mode 100644
index 00000000..d22c89b0
--- /dev/null
+++ b/addons/auth_totp_portal/i18n/auth_totp_portal.pot
@@ -0,0 +1,54 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * auth_totp_portal
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 14.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-29 13:45+0000\n"
+"PO-Revision-Date: 2020-09-29 13:45+0000\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_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "(Disable two-factor authentication)"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<i class=\"fa fa-warning\"/>\n"
+" Two-factor authentication not enabled"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<span class=\"text-success\">\n"
+" <i class=\"fa fa-check-circle\"/>\n"
+" Two-factor authentication enabled\n"
+" </span>"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Enable two-factor authentication"
+msgstr ""
+
+#. module: auth_totp_portal
+#. openerp-web
+#: code:addons/auth_totp_portal/static/src/js/totp_frontend.js:0
+#, python-format
+msgid "Operation failed for unknown reason."
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Two-factor authentication"
+msgstr ""
diff --git a/addons/auth_totp_portal/i18n/bg.po b/addons/auth_totp_portal/i18n/bg.po
new file mode 100644
index 00000000..36a5f44b
--- /dev/null
+++ b/addons/auth_totp_portal/i18n/bg.po
@@ -0,0 +1,54 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * auth_totp_portal
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 14.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-29 13:45+0000\n"
+"PO-Revision-Date: 2020-10-05 06:30+0000\n"
+"Language-Team: Bulgarian (https://www.transifex.com/odoo/teams/41243/bg/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: bg\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "(Disable two-factor authentication)"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<i class=\"fa fa-warning\"/>\n"
+" Two-factor authentication not enabled"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<span class=\"text-success\">\n"
+" <i class=\"fa fa-check-circle\"/>\n"
+" Two-factor authentication enabled\n"
+" </span>"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Enable two-factor authentication"
+msgstr ""
+
+#. module: auth_totp_portal
+#. openerp-web
+#: code:addons/auth_totp_portal/static/src/js/totp_frontend.js:0
+#, python-format
+msgid "Operation failed for unknown reason."
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Two-factor authentication"
+msgstr ""
diff --git a/addons/auth_totp_portal/i18n/bn.po b/addons/auth_totp_portal/i18n/bn.po
new file mode 100644
index 00000000..81516022
--- /dev/null
+++ b/addons/auth_totp_portal/i18n/bn.po
@@ -0,0 +1,54 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * auth_totp_portal
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 14.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-29 13:45+0000\n"
+"PO-Revision-Date: 2020-10-05 06:30+0000\n"
+"Language-Team: Bengali (https://www.transifex.com/odoo/teams/41243/bn/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: bn\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "(Disable two-factor authentication)"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<i class=\"fa fa-warning\"/>\n"
+" Two-factor authentication not enabled"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<span class=\"text-success\">\n"
+" <i class=\"fa fa-check-circle\"/>\n"
+" Two-factor authentication enabled\n"
+" </span>"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Enable two-factor authentication"
+msgstr ""
+
+#. module: auth_totp_portal
+#. openerp-web
+#: code:addons/auth_totp_portal/static/src/js/totp_frontend.js:0
+#, python-format
+msgid "Operation failed for unknown reason."
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Two-factor authentication"
+msgstr ""
diff --git a/addons/auth_totp_portal/i18n/ca.po b/addons/auth_totp_portal/i18n/ca.po
new file mode 100644
index 00000000..c80abdd4
--- /dev/null
+++ b/addons/auth_totp_portal/i18n/ca.po
@@ -0,0 +1,54 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * auth_totp_portal
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 14.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-29 13:45+0000\n"
+"PO-Revision-Date: 2020-10-05 06:30+0000\n"
+"Language-Team: Catalan (https://www.transifex.com/odoo/teams/41243/ca/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: ca\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "(Disable two-factor authentication)"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<i class=\"fa fa-warning\"/>\n"
+" Two-factor authentication not enabled"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<span class=\"text-success\">\n"
+" <i class=\"fa fa-check-circle\"/>\n"
+" Two-factor authentication enabled\n"
+" </span>"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Enable two-factor authentication"
+msgstr ""
+
+#. module: auth_totp_portal
+#. openerp-web
+#: code:addons/auth_totp_portal/static/src/js/totp_frontend.js:0
+#, python-format
+msgid "Operation failed for unknown reason."
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Two-factor authentication"
+msgstr ""
diff --git a/addons/auth_totp_portal/i18n/ckb.po b/addons/auth_totp_portal/i18n/ckb.po
new file mode 100644
index 00000000..5d77da86
--- /dev/null
+++ b/addons/auth_totp_portal/i18n/ckb.po
@@ -0,0 +1,54 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * auth_totp_portal
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 14.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-29 13:45+0000\n"
+"PO-Revision-Date: 2020-10-05 06:30+0000\n"
+"Language-Team: Central Kurdish (https://www.transifex.com/odoo/teams/41243/ckb/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: ckb\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "(Disable two-factor authentication)"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<i class=\"fa fa-warning\"/>\n"
+" Two-factor authentication not enabled"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<span class=\"text-success\">\n"
+" <i class=\"fa fa-check-circle\"/>\n"
+" Two-factor authentication enabled\n"
+" </span>"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Enable two-factor authentication"
+msgstr ""
+
+#. module: auth_totp_portal
+#. openerp-web
+#: code:addons/auth_totp_portal/static/src/js/totp_frontend.js:0
+#, python-format
+msgid "Operation failed for unknown reason."
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Two-factor authentication"
+msgstr ""
diff --git a/addons/auth_totp_portal/i18n/cs.po b/addons/auth_totp_portal/i18n/cs.po
new file mode 100644
index 00000000..d7c951b5
--- /dev/null
+++ b/addons/auth_totp_portal/i18n/cs.po
@@ -0,0 +1,65 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * auth_totp_portal
+#
+# Translators:
+# karolína schusterová <karolina.schusterova@vdp.sk>, 2021
+# Damian Brencic <brencicdamian12313@gmail.com>, 2021
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 14.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-29 13:45+0000\n"
+"PO-Revision-Date: 2020-10-05 06:30+0000\n"
+"Last-Translator: Damian Brencic <brencicdamian12313@gmail.com>, 2021\n"
+"Language-Team: Czech (https://www.transifex.com/odoo/teams/41243/cs/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: cs\n"
+"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "(Disable two-factor authentication)"
+msgstr "(Zakázat dvoufaktorové ověřování)"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<i class=\"fa fa-warning\"/>\n"
+" Two-factor authentication not enabled"
+msgstr ""
+"<i class=\"fa fa-warning\"/>\n"
+" Dvoufaktorové ověřování není povoleno"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<span class=\"text-success\">\n"
+" <i class=\"fa fa-check-circle\"/>\n"
+" Two-factor authentication enabled\n"
+" </span>"
+msgstr ""
+"<span class=\"text-success\">\n"
+" <i class=\"fa fa-check-circle\"/>\n"
+" Dvoufaktorové ověřování povoleno\n"
+" </span>"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Enable two-factor authentication"
+msgstr "Povolit dvoufaktorové ověřování"
+
+#. module: auth_totp_portal
+#. openerp-web
+#: code:addons/auth_totp_portal/static/src/js/totp_frontend.js:0
+#, python-format
+msgid "Operation failed for unknown reason."
+msgstr "Operace selhala z neznámého důvodu."
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Two-factor authentication"
+msgstr "Dvoufaktorové ověřování"
diff --git a/addons/auth_totp_portal/i18n/da.po b/addons/auth_totp_portal/i18n/da.po
new file mode 100644
index 00000000..f752dc71
--- /dev/null
+++ b/addons/auth_totp_portal/i18n/da.po
@@ -0,0 +1,64 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * auth_totp_portal
+#
+# Translators:
+# Mads Søndergaard <mads@vkdata.dk>, 2020
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 14.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-29 13:45+0000\n"
+"PO-Revision-Date: 2020-10-05 06:30+0000\n"
+"Last-Translator: Mads Søndergaard <mads@vkdata.dk>, 2020\n"
+"Language-Team: Danish (https://www.transifex.com/odoo/teams/41243/da/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: da\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "(Disable two-factor authentication)"
+msgstr "(Deaktiver to-faktor autentificering)"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<i class=\"fa fa-warning\"/>\n"
+" Two-factor authentication not enabled"
+msgstr ""
+"<i class=\"fa fa-warning\"/>\n"
+" To-faktor autentificering ikke aktiveret"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<span class=\"text-success\">\n"
+" <i class=\"fa fa-check-circle\"/>\n"
+" Two-factor authentication enabled\n"
+" </span>"
+msgstr ""
+"<span class=\"text-success\">\n"
+" <i class=\"fa fa-check-circle\"/>\n"
+" To-faktor autentificering aktiveret\n"
+" </span>"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Enable two-factor authentication"
+msgstr "Aktiver to-faktor autentificering"
+
+#. module: auth_totp_portal
+#. openerp-web
+#: code:addons/auth_totp_portal/static/src/js/totp_frontend.js:0
+#, python-format
+msgid "Operation failed for unknown reason."
+msgstr "Operationen slog fejl af ukendte årsager."
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Two-factor authentication"
+msgstr "To-faktor autentificering"
diff --git a/addons/auth_totp_portal/i18n/de.po b/addons/auth_totp_portal/i18n/de.po
new file mode 100644
index 00000000..f27d4f0f
--- /dev/null
+++ b/addons/auth_totp_portal/i18n/de.po
@@ -0,0 +1,64 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * auth_totp_portal
+#
+# Translators:
+# Robert Förster <hello@suppliot.eu>, 2021
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 14.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-29 13:45+0000\n"
+"PO-Revision-Date: 2020-10-05 06:30+0000\n"
+"Last-Translator: Robert Förster <hello@suppliot.eu>, 2021\n"
+"Language-Team: German (https://www.transifex.com/odoo/teams/41243/de/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: de\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "(Disable two-factor authentication)"
+msgstr "(Zwei-Faktor-Authentifizierung deaktivieren)"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<i class=\"fa fa-warning\"/>\n"
+" Two-factor authentication not enabled"
+msgstr ""
+"<i class=\"fa fa-warning\"/>\n"
+" Zwei-Faktor-Authentifizierung nicht aktiviert"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<span class=\"text-success\">\n"
+" <i class=\"fa fa-check-circle\"/>\n"
+" Two-factor authentication enabled\n"
+" </span>"
+msgstr ""
+"<span class=\"text-success\">\n"
+" <i class=\"fa fa-check-circle\"/>\n"
+" Zwei-Faktor-Authentifizierung aktiviert\n"
+" </span>"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Enable two-factor authentication"
+msgstr "Aktiviere Zwei-Faktor-Authentifizierung"
+
+#. module: auth_totp_portal
+#. openerp-web
+#: code:addons/auth_totp_portal/static/src/js/totp_frontend.js:0
+#, python-format
+msgid "Operation failed for unknown reason."
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Two-factor authentication"
+msgstr "Zwei-Faktor-Authentifizierung"
diff --git a/addons/auth_totp_portal/i18n/el.po b/addons/auth_totp_portal/i18n/el.po
new file mode 100644
index 00000000..25c22119
--- /dev/null
+++ b/addons/auth_totp_portal/i18n/el.po
@@ -0,0 +1,54 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * auth_totp_portal
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 14.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-29 13:45+0000\n"
+"PO-Revision-Date: 2020-10-05 06:30+0000\n"
+"Language-Team: Greek (https://www.transifex.com/odoo/teams/41243/el/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: el\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "(Disable two-factor authentication)"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<i class=\"fa fa-warning\"/>\n"
+" Two-factor authentication not enabled"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<span class=\"text-success\">\n"
+" <i class=\"fa fa-check-circle\"/>\n"
+" Two-factor authentication enabled\n"
+" </span>"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Enable two-factor authentication"
+msgstr ""
+
+#. module: auth_totp_portal
+#. openerp-web
+#: code:addons/auth_totp_portal/static/src/js/totp_frontend.js:0
+#, python-format
+msgid "Operation failed for unknown reason."
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Two-factor authentication"
+msgstr ""
diff --git a/addons/auth_totp_portal/i18n/eo.po b/addons/auth_totp_portal/i18n/eo.po
new file mode 100644
index 00000000..a5abd6d1
--- /dev/null
+++ b/addons/auth_totp_portal/i18n/eo.po
@@ -0,0 +1,54 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * auth_totp_portal
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 14.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-29 13:45+0000\n"
+"PO-Revision-Date: 2020-10-05 06:30+0000\n"
+"Language-Team: Esperanto (https://www.transifex.com/odoo/teams/41243/eo/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: eo\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "(Disable two-factor authentication)"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<i class=\"fa fa-warning\"/>\n"
+" Two-factor authentication not enabled"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<span class=\"text-success\">\n"
+" <i class=\"fa fa-check-circle\"/>\n"
+" Two-factor authentication enabled\n"
+" </span>"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Enable two-factor authentication"
+msgstr ""
+
+#. module: auth_totp_portal
+#. openerp-web
+#: code:addons/auth_totp_portal/static/src/js/totp_frontend.js:0
+#, python-format
+msgid "Operation failed for unknown reason."
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Two-factor authentication"
+msgstr ""
diff --git a/addons/auth_totp_portal/i18n/es.po b/addons/auth_totp_portal/i18n/es.po
new file mode 100644
index 00000000..77a44cd0
--- /dev/null
+++ b/addons/auth_totp_portal/i18n/es.po
@@ -0,0 +1,64 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * auth_totp_portal
+#
+# Translators:
+# José Cabrera Lozano <jose.cabrera@edukative.es>, 2021
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 14.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-29 13:45+0000\n"
+"PO-Revision-Date: 2020-10-05 06:30+0000\n"
+"Last-Translator: José Cabrera Lozano <jose.cabrera@edukative.es>, 2021\n"
+"Language-Team: Spanish (https://www.transifex.com/odoo/teams/41243/es/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: es\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "(Disable two-factor authentication)"
+msgstr "(Deshabilitar la autenticación en dos pasos)"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<i class=\"fa fa-warning\"/>\n"
+" Two-factor authentication not enabled"
+msgstr ""
+"<i class=\"fa fa-warning\"/>\n"
+" Autenticación en dos pasos deshabilitada"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<span class=\"text-success\">\n"
+" <i class=\"fa fa-check-circle\"/>\n"
+" Two-factor authentication enabled\n"
+" </span>"
+msgstr ""
+"<span class=\"text-success\">\n"
+" <i class=\"fa fa-check-circle\"/>\n"
+" Autenticación en dos pasos habilitada\n"
+"</span>"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Enable two-factor authentication"
+msgstr "Habilitar la autenticación en dos pasos"
+
+#. module: auth_totp_portal
+#. openerp-web
+#: code:addons/auth_totp_portal/static/src/js/totp_frontend.js:0
+#, python-format
+msgid "Operation failed for unknown reason."
+msgstr "La operación falló por una razón desconocida."
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Two-factor authentication"
+msgstr "Autenticación en dos pasos"
diff --git a/addons/auth_totp_portal/i18n/es_MX.po b/addons/auth_totp_portal/i18n/es_MX.po
new file mode 100644
index 00000000..8e43b71c
--- /dev/null
+++ b/addons/auth_totp_portal/i18n/es_MX.po
@@ -0,0 +1,64 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * auth_totp_portal
+#
+# Translators:
+# Cécile Collart <cco@odoo.com>, 2021
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 14.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-29 13:45+0000\n"
+"PO-Revision-Date: 2020-10-05 06:30+0000\n"
+"Last-Translator: Cécile Collart <cco@odoo.com>, 2021\n"
+"Language-Team: Spanish (Mexico) (https://www.transifex.com/odoo/teams/41243/es_MX/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: es_MX\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "(Disable two-factor authentication)"
+msgstr "(Deshabilitar la autenticación en dos pasos)"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<i class=\"fa fa-warning\"/>\n"
+" Two-factor authentication not enabled"
+msgstr ""
+"<i class=\"fa fa-warning\"/>\n"
+" Autenticación en dos pasos deshabilitada"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<span class=\"text-success\">\n"
+" <i class=\"fa fa-check-circle\"/>\n"
+" Two-factor authentication enabled\n"
+" </span>"
+msgstr ""
+"<span class=\"text-success\">\n"
+" <i class=\"fa fa-check-circle\"/>\n"
+" Autenticación en dos pasos habilitada\n"
+"</span>"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Enable two-factor authentication"
+msgstr "Habilitar la autenticación en dos pasos"
+
+#. module: auth_totp_portal
+#. openerp-web
+#: code:addons/auth_totp_portal/static/src/js/totp_frontend.js:0
+#, python-format
+msgid "Operation failed for unknown reason."
+msgstr "La operación falló por una razón desconocida."
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Two-factor authentication"
+msgstr "Autenticación en dos pasos"
diff --git a/addons/auth_totp_portal/i18n/et.po b/addons/auth_totp_portal/i18n/et.po
new file mode 100644
index 00000000..2ac6ebdb
--- /dev/null
+++ b/addons/auth_totp_portal/i18n/et.po
@@ -0,0 +1,65 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * auth_totp_portal
+#
+# Translators:
+# Eneli Õigus <enelioigus@gmail.com>, 2020
+# Triine Aavik <triine@avalah.ee>, 2020
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 14.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-29 13:45+0000\n"
+"PO-Revision-Date: 2020-10-05 06:30+0000\n"
+"Last-Translator: Triine Aavik <triine@avalah.ee>, 2020\n"
+"Language-Team: Estonian (https://www.transifex.com/odoo/teams/41243/et/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: et\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "(Disable two-factor authentication)"
+msgstr "(Lülita kahe-etapiline tuvastamine välja)"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<i class=\"fa fa-warning\"/>\n"
+" Two-factor authentication not enabled"
+msgstr ""
+"<i class=\"fa fa-warning\"/>\n"
+" Kahe-etapiline tuvastamine ei ole lubatud"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<span class=\"text-success\">\n"
+" <i class=\"fa fa-check-circle\"/>\n"
+" Two-factor authentication enabled\n"
+" </span>"
+msgstr ""
+"<span class=\"text-success\">\n"
+" <i class=\"fa fa-check-circle\"/>\n"
+" Kahe-etapiline tuvastamine on lubatud\n"
+" </span>"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Enable two-factor authentication"
+msgstr "Luba kahe-etapiline tuvastamine"
+
+#. module: auth_totp_portal
+#. openerp-web
+#: code:addons/auth_totp_portal/static/src/js/totp_frontend.js:0
+#, python-format
+msgid "Operation failed for unknown reason."
+msgstr "Toiming nurjus teadmata põhjustel."
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Two-factor authentication"
+msgstr "Kahe-etapiline tuvastamine"
diff --git a/addons/auth_totp_portal/i18n/eu.po b/addons/auth_totp_portal/i18n/eu.po
new file mode 100644
index 00000000..39061724
--- /dev/null
+++ b/addons/auth_totp_portal/i18n/eu.po
@@ -0,0 +1,54 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * auth_totp_portal
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 14.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-29 13:45+0000\n"
+"PO-Revision-Date: 2020-10-05 06:30+0000\n"
+"Language-Team: Basque (https://www.transifex.com/odoo/teams/41243/eu/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: eu\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "(Disable two-factor authentication)"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<i class=\"fa fa-warning\"/>\n"
+" Two-factor authentication not enabled"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<span class=\"text-success\">\n"
+" <i class=\"fa fa-check-circle\"/>\n"
+" Two-factor authentication enabled\n"
+" </span>"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Enable two-factor authentication"
+msgstr ""
+
+#. module: auth_totp_portal
+#. openerp-web
+#: code:addons/auth_totp_portal/static/src/js/totp_frontend.js:0
+#, python-format
+msgid "Operation failed for unknown reason."
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Two-factor authentication"
+msgstr ""
diff --git a/addons/auth_totp_portal/i18n/fa.po b/addons/auth_totp_portal/i18n/fa.po
new file mode 100644
index 00000000..9f7b7fc9
--- /dev/null
+++ b/addons/auth_totp_portal/i18n/fa.po
@@ -0,0 +1,54 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * auth_totp_portal
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 14.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-29 13:45+0000\n"
+"PO-Revision-Date: 2020-10-05 06:30+0000\n"
+"Language-Team: Persian (https://www.transifex.com/odoo/teams/41243/fa/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: fa\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "(Disable two-factor authentication)"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<i class=\"fa fa-warning\"/>\n"
+" Two-factor authentication not enabled"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<span class=\"text-success\">\n"
+" <i class=\"fa fa-check-circle\"/>\n"
+" Two-factor authentication enabled\n"
+" </span>"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Enable two-factor authentication"
+msgstr ""
+
+#. module: auth_totp_portal
+#. openerp-web
+#: code:addons/auth_totp_portal/static/src/js/totp_frontend.js:0
+#, python-format
+msgid "Operation failed for unknown reason."
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Two-factor authentication"
+msgstr ""
diff --git a/addons/auth_totp_portal/i18n/fi.po b/addons/auth_totp_portal/i18n/fi.po
new file mode 100644
index 00000000..ce8b79ac
--- /dev/null
+++ b/addons/auth_totp_portal/i18n/fi.po
@@ -0,0 +1,54 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * auth_totp_portal
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 14.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-29 13:45+0000\n"
+"PO-Revision-Date: 2020-10-05 06:30+0000\n"
+"Language-Team: Finnish (https://www.transifex.com/odoo/teams/41243/fi/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: fi\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "(Disable two-factor authentication)"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<i class=\"fa fa-warning\"/>\n"
+" Two-factor authentication not enabled"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<span class=\"text-success\">\n"
+" <i class=\"fa fa-check-circle\"/>\n"
+" Two-factor authentication enabled\n"
+" </span>"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Enable two-factor authentication"
+msgstr ""
+
+#. module: auth_totp_portal
+#. openerp-web
+#: code:addons/auth_totp_portal/static/src/js/totp_frontend.js:0
+#, python-format
+msgid "Operation failed for unknown reason."
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Two-factor authentication"
+msgstr ""
diff --git a/addons/auth_totp_portal/i18n/fr.po b/addons/auth_totp_portal/i18n/fr.po
new file mode 100644
index 00000000..bf92e1f1
--- /dev/null
+++ b/addons/auth_totp_portal/i18n/fr.po
@@ -0,0 +1,66 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * auth_totp_portal
+#
+# Translators:
+# Chaplet34 <charleskolie2@gmail.com>, 2020
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 14.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-29 13:45+0000\n"
+"PO-Revision-Date: 2020-10-05 06:30+0000\n"
+"Last-Translator: Chaplet34 <charleskolie2@gmail.com>, 2020\n"
+"Language-Team: French (https://www.transifex.com/odoo/teams/41243/fr/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: fr\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "(Disable two-factor authentication)"
+msgstr ""
+"1\n"
+"(Désactivation authentication deux-facteurs)"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<i class=\"fa fa-warning\"/>\n"
+" Two-factor authentication not enabled"
+msgstr ""
+"<i class=\"fa fa-warning\"/>\n"
+" Autentification deux-facteurs pas activé"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<span class=\"text-success\">\n"
+" <i class=\"fa fa-check-circle\"/>\n"
+" Two-factor authentication enabled\n"
+" </span>"
+msgstr ""
+" <span class=\"text-success\">\n"
+" <i class=\"fa fa-check-circle\"/>\n"
+" Autentification deux-facteurs activé\n"
+" </span>"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Enable two-factor authentication"
+msgstr "Activer autentification deux-facteurs"
+
+#. module: auth_totp_portal
+#. openerp-web
+#: code:addons/auth_totp_portal/static/src/js/totp_frontend.js:0
+#, python-format
+msgid "Operation failed for unknown reason."
+msgstr "Opération échouée pour des raisons inconnues."
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Two-factor authentication"
+msgstr "Autentification deux-facteurs"
diff --git a/addons/auth_totp_portal/i18n/he.po b/addons/auth_totp_portal/i18n/he.po
new file mode 100644
index 00000000..511d780e
--- /dev/null
+++ b/addons/auth_totp_portal/i18n/he.po
@@ -0,0 +1,54 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * auth_totp_portal
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 14.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-29 13:45+0000\n"
+"PO-Revision-Date: 2020-10-05 06:30+0000\n"
+"Language-Team: Hebrew (https://www.transifex.com/odoo/teams/41243/he/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: he\n"
+"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;\n"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "(Disable two-factor authentication)"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<i class=\"fa fa-warning\"/>\n"
+" Two-factor authentication not enabled"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<span class=\"text-success\">\n"
+" <i class=\"fa fa-check-circle\"/>\n"
+" Two-factor authentication enabled\n"
+" </span>"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Enable two-factor authentication"
+msgstr ""
+
+#. module: auth_totp_portal
+#. openerp-web
+#: code:addons/auth_totp_portal/static/src/js/totp_frontend.js:0
+#, python-format
+msgid "Operation failed for unknown reason."
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Two-factor authentication"
+msgstr ""
diff --git a/addons/auth_totp_portal/i18n/hi.po b/addons/auth_totp_portal/i18n/hi.po
new file mode 100644
index 00000000..9c9c7429
--- /dev/null
+++ b/addons/auth_totp_portal/i18n/hi.po
@@ -0,0 +1,54 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * auth_totp_portal
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 14.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-29 13:45+0000\n"
+"PO-Revision-Date: 2020-10-05 06:30+0000\n"
+"Language-Team: Hindi (https://www.transifex.com/odoo/teams/41243/hi/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: hi\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "(Disable two-factor authentication)"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<i class=\"fa fa-warning\"/>\n"
+" Two-factor authentication not enabled"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<span class=\"text-success\">\n"
+" <i class=\"fa fa-check-circle\"/>\n"
+" Two-factor authentication enabled\n"
+" </span>"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Enable two-factor authentication"
+msgstr ""
+
+#. module: auth_totp_portal
+#. openerp-web
+#: code:addons/auth_totp_portal/static/src/js/totp_frontend.js:0
+#, python-format
+msgid "Operation failed for unknown reason."
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Two-factor authentication"
+msgstr ""
diff --git a/addons/auth_totp_portal/i18n/hr.po b/addons/auth_totp_portal/i18n/hr.po
new file mode 100644
index 00000000..4b51cc4f
--- /dev/null
+++ b/addons/auth_totp_portal/i18n/hr.po
@@ -0,0 +1,54 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * auth_totp_portal
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 14.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-29 13:45+0000\n"
+"PO-Revision-Date: 2020-10-05 06:30+0000\n"
+"Language-Team: Croatian (https://www.transifex.com/odoo/teams/41243/hr/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: hr\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_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "(Disable two-factor authentication)"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<i class=\"fa fa-warning\"/>\n"
+" Two-factor authentication not enabled"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<span class=\"text-success\">\n"
+" <i class=\"fa fa-check-circle\"/>\n"
+" Two-factor authentication enabled\n"
+" </span>"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Enable two-factor authentication"
+msgstr ""
+
+#. module: auth_totp_portal
+#. openerp-web
+#: code:addons/auth_totp_portal/static/src/js/totp_frontend.js:0
+#, python-format
+msgid "Operation failed for unknown reason."
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Two-factor authentication"
+msgstr ""
diff --git a/addons/auth_totp_portal/i18n/hu.po b/addons/auth_totp_portal/i18n/hu.po
new file mode 100644
index 00000000..78057319
--- /dev/null
+++ b/addons/auth_totp_portal/i18n/hu.po
@@ -0,0 +1,64 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * auth_totp_portal
+#
+# Translators:
+# Tamás Németh <ntomasz81@gmail.com>, 2021
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 14.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-29 13:45+0000\n"
+"PO-Revision-Date: 2020-10-05 06:30+0000\n"
+"Last-Translator: Tamás Németh <ntomasz81@gmail.com>, 2021\n"
+"Language-Team: Hungarian (https://www.transifex.com/odoo/teams/41243/hu/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: hu\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "(Disable two-factor authentication)"
+msgstr "(Kétlépcsős azonosítás kikapcsolása)"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<i class=\"fa fa-warning\"/>\n"
+" Two-factor authentication not enabled"
+msgstr ""
+"<i class=\"fa fa-warning\"/>\n"
+" Kétlépcsős azonosítás nincs engedélyezve"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<span class=\"text-success\">\n"
+" <i class=\"fa fa-check-circle\"/>\n"
+" Two-factor authentication enabled\n"
+" </span>"
+msgstr ""
+"<span class=\"text-success\">\n"
+" <i class=\"fa fa-check-circle\"/>\n"
+" Kétlépcsős azonosítás engedélyezve\n"
+" </span>"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Enable two-factor authentication"
+msgstr "Kétlépcsős azonosítás engedélyezése"
+
+#. module: auth_totp_portal
+#. openerp-web
+#: code:addons/auth_totp_portal/static/src/js/totp_frontend.js:0
+#, python-format
+msgid "Operation failed for unknown reason."
+msgstr "A művelet nem sikerült ismeretlen okból."
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Two-factor authentication"
+msgstr "Kétlépcsős azonosítás"
diff --git a/addons/auth_totp_portal/i18n/id.po b/addons/auth_totp_portal/i18n/id.po
new file mode 100644
index 00000000..c592a2c0
--- /dev/null
+++ b/addons/auth_totp_portal/i18n/id.po
@@ -0,0 +1,64 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * auth_totp_portal
+#
+# Translators:
+# Abdul Munif Hanafi <amunifhanafi@gmail.com>, 2021
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 14.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-29 13:45+0000\n"
+"PO-Revision-Date: 2020-10-05 06:30+0000\n"
+"Last-Translator: Abdul Munif Hanafi <amunifhanafi@gmail.com>, 2021\n"
+"Language-Team: Indonesian (https://www.transifex.com/odoo/teams/41243/id/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: id\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "(Disable two-factor authentication)"
+msgstr "(Nonaktifkan otentikasi dua faktor)"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<i class=\"fa fa-warning\"/>\n"
+" Two-factor authentication not enabled"
+msgstr ""
+"<i class=\"fa fa-warning\"/>\n"
+" Otentikasi dua faktor tidak diaktifkan"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<span class=\"text-success\">\n"
+" <i class=\"fa fa-check-circle\"/>\n"
+" Two-factor authentication enabled\n"
+" </span>"
+msgstr ""
+"<span class=\"text-success\">\n"
+" <i class=\"fa fa-check-circle\"/>\n"
+" Otentikasi dua faktor diaktifkan\n"
+" </span>"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Enable two-factor authentication"
+msgstr "Aktifkan otentikasi dua faktor"
+
+#. module: auth_totp_portal
+#. openerp-web
+#: code:addons/auth_totp_portal/static/src/js/totp_frontend.js:0
+#, python-format
+msgid "Operation failed for unknown reason."
+msgstr "Operasi gagal karena alasan yang tidak diketahui."
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Two-factor authentication"
+msgstr "Otentikasi dua faktor"
diff --git a/addons/auth_totp_portal/i18n/it.po b/addons/auth_totp_portal/i18n/it.po
new file mode 100644
index 00000000..b89a6b50
--- /dev/null
+++ b/addons/auth_totp_portal/i18n/it.po
@@ -0,0 +1,64 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * auth_totp_portal
+#
+# Translators:
+# Sergio Zanchetta <primes2h@gmail.com>, 2020
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 14.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-29 13:45+0000\n"
+"PO-Revision-Date: 2020-10-05 06:30+0000\n"
+"Last-Translator: Sergio Zanchetta <primes2h@gmail.com>, 2020\n"
+"Language-Team: Italian (https://www.transifex.com/odoo/teams/41243/it/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: it\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "(Disable two-factor authentication)"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<i class=\"fa fa-warning\"/>\n"
+" Two-factor authentication not enabled"
+msgstr ""
+"<i class=\"fa fa-warning\"/>\n"
+" Autenticazione a due fattori non abilitata"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<span class=\"text-success\">\n"
+" <i class=\"fa fa-check-circle\"/>\n"
+" Two-factor authentication enabled\n"
+" </span>"
+msgstr ""
+"<span class=\"text-success\">\n"
+" <i class=\"fa fa-check-circle\"/>\n"
+" Autenticazione a due fattori abilitata\n"
+" </span>"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Enable two-factor authentication"
+msgstr "Abilita autenticazione a due fattori"
+
+#. module: auth_totp_portal
+#. openerp-web
+#: code:addons/auth_totp_portal/static/src/js/totp_frontend.js:0
+#, python-format
+msgid "Operation failed for unknown reason."
+msgstr "Operazione non riuscita per motivi sconosciuti."
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Two-factor authentication"
+msgstr "Autenticazione a due fattori"
diff --git a/addons/auth_totp_portal/i18n/ja.po b/addons/auth_totp_portal/i18n/ja.po
new file mode 100644
index 00000000..b1a7f9c0
--- /dev/null
+++ b/addons/auth_totp_portal/i18n/ja.po
@@ -0,0 +1,65 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * auth_totp_portal
+#
+# Translators:
+# Yoshi Tashiro <tashiro@roomsfor.hk>, 2020
+# Noma Yuki, 2020
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 14.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-29 13:45+0000\n"
+"PO-Revision-Date: 2020-10-05 06:30+0000\n"
+"Last-Translator: Noma Yuki, 2020\n"
+"Language-Team: Japanese (https://www.transifex.com/odoo/teams/41243/ja/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: ja\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "(Disable two-factor authentication)"
+msgstr "(2要素認証を無効化)"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<i class=\"fa fa-warning\"/>\n"
+" Two-factor authentication not enabled"
+msgstr ""
+"<i class=\"fa fa-warning\"/>\n"
+" 2段階認証が無効化されています"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<span class=\"text-success\">\n"
+" <i class=\"fa fa-check-circle\"/>\n"
+" Two-factor authentication enabled\n"
+" </span>"
+msgstr ""
+"<span class=\"text-success\">\n"
+" <i class=\"fa fa-check-circle\"/>\n"
+" 2段階認証が有効になりました\n"
+" </span>"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Enable two-factor authentication"
+msgstr "2要素認証を有効化"
+
+#. module: auth_totp_portal
+#. openerp-web
+#: code:addons/auth_totp_portal/static/src/js/totp_frontend.js:0
+#, python-format
+msgid "Operation failed for unknown reason."
+msgstr "不明な理由で操作に失敗しました。"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Two-factor authentication"
+msgstr "2要素認証"
diff --git a/addons/auth_totp_portal/i18n/ka.po b/addons/auth_totp_portal/i18n/ka.po
new file mode 100644
index 00000000..9aeef208
--- /dev/null
+++ b/addons/auth_totp_portal/i18n/ka.po
@@ -0,0 +1,54 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * auth_totp_portal
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 14.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-29 13:45+0000\n"
+"PO-Revision-Date: 2020-10-05 06:30+0000\n"
+"Language-Team: Georgian (https://www.transifex.com/odoo/teams/41243/ka/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: ka\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "(Disable two-factor authentication)"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<i class=\"fa fa-warning\"/>\n"
+" Two-factor authentication not enabled"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<span class=\"text-success\">\n"
+" <i class=\"fa fa-check-circle\"/>\n"
+" Two-factor authentication enabled\n"
+" </span>"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Enable two-factor authentication"
+msgstr ""
+
+#. module: auth_totp_portal
+#. openerp-web
+#: code:addons/auth_totp_portal/static/src/js/totp_frontend.js:0
+#, python-format
+msgid "Operation failed for unknown reason."
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Two-factor authentication"
+msgstr ""
diff --git a/addons/auth_totp_portal/i18n/km.po b/addons/auth_totp_portal/i18n/km.po
new file mode 100644
index 00000000..61ae286d
--- /dev/null
+++ b/addons/auth_totp_portal/i18n/km.po
@@ -0,0 +1,54 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * auth_totp_portal
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 14.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-29 13:45+0000\n"
+"PO-Revision-Date: 2020-10-05 06:30+0000\n"
+"Language-Team: Khmer (https://www.transifex.com/odoo/teams/41243/km/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: km\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "(Disable two-factor authentication)"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<i class=\"fa fa-warning\"/>\n"
+" Two-factor authentication not enabled"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<span class=\"text-success\">\n"
+" <i class=\"fa fa-check-circle\"/>\n"
+" Two-factor authentication enabled\n"
+" </span>"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Enable two-factor authentication"
+msgstr ""
+
+#. module: auth_totp_portal
+#. openerp-web
+#: code:addons/auth_totp_portal/static/src/js/totp_frontend.js:0
+#, python-format
+msgid "Operation failed for unknown reason."
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Two-factor authentication"
+msgstr ""
diff --git a/addons/auth_totp_portal/i18n/ko.po b/addons/auth_totp_portal/i18n/ko.po
new file mode 100644
index 00000000..7930a890
--- /dev/null
+++ b/addons/auth_totp_portal/i18n/ko.po
@@ -0,0 +1,54 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * auth_totp_portal
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 14.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-29 13:45+0000\n"
+"PO-Revision-Date: 2020-10-05 06:30+0000\n"
+"Language-Team: Korean (https://www.transifex.com/odoo/teams/41243/ko/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: ko\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "(Disable two-factor authentication)"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<i class=\"fa fa-warning\"/>\n"
+" Two-factor authentication not enabled"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<span class=\"text-success\">\n"
+" <i class=\"fa fa-check-circle\"/>\n"
+" Two-factor authentication enabled\n"
+" </span>"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Enable two-factor authentication"
+msgstr ""
+
+#. module: auth_totp_portal
+#. openerp-web
+#: code:addons/auth_totp_portal/static/src/js/totp_frontend.js:0
+#, python-format
+msgid "Operation failed for unknown reason."
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Two-factor authentication"
+msgstr ""
diff --git a/addons/auth_totp_portal/i18n/lt.po b/addons/auth_totp_portal/i18n/lt.po
new file mode 100644
index 00000000..1e91fe8e
--- /dev/null
+++ b/addons/auth_totp_portal/i18n/lt.po
@@ -0,0 +1,65 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * auth_totp_portal
+#
+# Translators:
+# Jonas Zinkevicius <jozi@odoo.com>, 2021
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 14.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-29 13:45+0000\n"
+"PO-Revision-Date: 2020-10-05 06:30+0000\n"
+"Last-Translator: Jonas Zinkevicius <jozi@odoo.com>, 2021\n"
+"Language-Team: Lithuanian (https://www.transifex.com/odoo/teams/41243/lt/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: lt\n"
+"Plural-Forms: nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);\n"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "(Disable two-factor authentication)"
+msgstr ""
+"(Išjungti dviejų veiksnių autentifikavimą (two-factor authentication))"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<i class=\"fa fa-warning\"/>\n"
+" Two-factor authentication not enabled"
+msgstr ""
+"<i class=\"fa fa-warning\"/>\n"
+" Dviejų veiksnių autentifikavimas (two-factor authentication) nėra įjungtas"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<span class=\"text-success\">\n"
+" <i class=\"fa fa-check-circle\"/>\n"
+" Two-factor authentication enabled\n"
+" </span>"
+msgstr ""
+"<span class=\"text-success\">\n"
+" <i class=\"fa fa-check-circle\"/>\n"
+" Dviejų veiksnių autentifikavimas (two-factor authentication) įjungtas\n"
+" </span>"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Enable two-factor authentication"
+msgstr "Įjungti dviejų veiksnių autentifikavimą (two-factor authentication)"
+
+#. module: auth_totp_portal
+#. openerp-web
+#: code:addons/auth_totp_portal/static/src/js/totp_frontend.js:0
+#, python-format
+msgid "Operation failed for unknown reason."
+msgstr "Operacija neoavyko dėl nežinomos priežasties."
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Two-factor authentication"
+msgstr "Dviejų veiksnių autentifikavimas (two-factor authentication)"
diff --git a/addons/auth_totp_portal/i18n/lv.po b/addons/auth_totp_portal/i18n/lv.po
new file mode 100644
index 00000000..dbf43562
--- /dev/null
+++ b/addons/auth_totp_portal/i18n/lv.po
@@ -0,0 +1,54 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * auth_totp_portal
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 14.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-29 13:45+0000\n"
+"PO-Revision-Date: 2020-10-05 06:30+0000\n"
+"Language-Team: Latvian (https://www.transifex.com/odoo/teams/41243/lv/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: lv\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "(Disable two-factor authentication)"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<i class=\"fa fa-warning\"/>\n"
+" Two-factor authentication not enabled"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<span class=\"text-success\">\n"
+" <i class=\"fa fa-check-circle\"/>\n"
+" Two-factor authentication enabled\n"
+" </span>"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Enable two-factor authentication"
+msgstr ""
+
+#. module: auth_totp_portal
+#. openerp-web
+#: code:addons/auth_totp_portal/static/src/js/totp_frontend.js:0
+#, python-format
+msgid "Operation failed for unknown reason."
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Two-factor authentication"
+msgstr ""
diff --git a/addons/auth_totp_portal/i18n/mn.po b/addons/auth_totp_portal/i18n/mn.po
new file mode 100644
index 00000000..c16c9bab
--- /dev/null
+++ b/addons/auth_totp_portal/i18n/mn.po
@@ -0,0 +1,54 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * auth_totp_portal
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 14.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-29 13:45+0000\n"
+"PO-Revision-Date: 2020-10-05 06:30+0000\n"
+"Language-Team: Mongolian (https://www.transifex.com/odoo/teams/41243/mn/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: mn\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "(Disable two-factor authentication)"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<i class=\"fa fa-warning\"/>\n"
+" Two-factor authentication not enabled"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<span class=\"text-success\">\n"
+" <i class=\"fa fa-check-circle\"/>\n"
+" Two-factor authentication enabled\n"
+" </span>"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Enable two-factor authentication"
+msgstr ""
+
+#. module: auth_totp_portal
+#. openerp-web
+#: code:addons/auth_totp_portal/static/src/js/totp_frontend.js:0
+#, python-format
+msgid "Operation failed for unknown reason."
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Two-factor authentication"
+msgstr ""
diff --git a/addons/auth_totp_portal/i18n/nb.po b/addons/auth_totp_portal/i18n/nb.po
new file mode 100644
index 00000000..fcd0fb18
--- /dev/null
+++ b/addons/auth_totp_portal/i18n/nb.po
@@ -0,0 +1,54 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * auth_totp_portal
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 14.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-29 13:45+0000\n"
+"PO-Revision-Date: 2020-10-05 06:30+0000\n"
+"Language-Team: Norwegian Bokmål (https://www.transifex.com/odoo/teams/41243/nb/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: nb\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "(Disable two-factor authentication)"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<i class=\"fa fa-warning\"/>\n"
+" Two-factor authentication not enabled"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<span class=\"text-success\">\n"
+" <i class=\"fa fa-check-circle\"/>\n"
+" Two-factor authentication enabled\n"
+" </span>"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Enable two-factor authentication"
+msgstr ""
+
+#. module: auth_totp_portal
+#. openerp-web
+#: code:addons/auth_totp_portal/static/src/js/totp_frontend.js:0
+#, python-format
+msgid "Operation failed for unknown reason."
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Two-factor authentication"
+msgstr ""
diff --git a/addons/auth_totp_portal/i18n/nl.po b/addons/auth_totp_portal/i18n/nl.po
new file mode 100644
index 00000000..2e26d985
--- /dev/null
+++ b/addons/auth_totp_portal/i18n/nl.po
@@ -0,0 +1,64 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * auth_totp_portal
+#
+# Translators:
+# Erwin van der Ploeg <erwin@odooexperts.nl>, 2020
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 14.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-29 13:45+0000\n"
+"PO-Revision-Date: 2020-10-05 06:30+0000\n"
+"Last-Translator: Erwin van der Ploeg <erwin@odooexperts.nl>, 2020\n"
+"Language-Team: Dutch (https://www.transifex.com/odoo/teams/41243/nl/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: nl\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "(Disable two-factor authentication)"
+msgstr "(Schakel tweefactorauthenticatie uit)"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<i class=\"fa fa-warning\"/>\n"
+" Two-factor authentication not enabled"
+msgstr ""
+"<i class=\"fa fa-warning\"/>\n"
+" Twee-factor-authenticatie niet ingeschakeld"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<span class=\"text-success\">\n"
+" <i class=\"fa fa-check-circle\"/>\n"
+" Two-factor authentication enabled\n"
+" </span>"
+msgstr ""
+"<span class=\"text-success\">\n"
+" <i class=\"fa fa-check-circle\"/>\n"
+" TTwee-factor-authenticatie ingeschakeld\n"
+" </span>"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Enable two-factor authentication"
+msgstr "Schakel tweefactorauthenticatie in"
+
+#. module: auth_totp_portal
+#. openerp-web
+#: code:addons/auth_totp_portal/static/src/js/totp_frontend.js:0
+#, python-format
+msgid "Operation failed for unknown reason."
+msgstr "Bewerking mislukt om onbekende reden."
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Two-factor authentication"
+msgstr "Twee-factor-authenticatie"
diff --git a/addons/auth_totp_portal/i18n/pl.po b/addons/auth_totp_portal/i18n/pl.po
new file mode 100644
index 00000000..46dc19b8
--- /dev/null
+++ b/addons/auth_totp_portal/i18n/pl.po
@@ -0,0 +1,54 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * auth_totp_portal
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 14.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-29 13:45+0000\n"
+"PO-Revision-Date: 2020-10-05 06:30+0000\n"
+"Language-Team: Polish (https://www.transifex.com/odoo/teams/41243/pl/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: pl\n"
+"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "(Disable two-factor authentication)"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<i class=\"fa fa-warning\"/>\n"
+" Two-factor authentication not enabled"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<span class=\"text-success\">\n"
+" <i class=\"fa fa-check-circle\"/>\n"
+" Two-factor authentication enabled\n"
+" </span>"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Enable two-factor authentication"
+msgstr ""
+
+#. module: auth_totp_portal
+#. openerp-web
+#: code:addons/auth_totp_portal/static/src/js/totp_frontend.js:0
+#, python-format
+msgid "Operation failed for unknown reason."
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Two-factor authentication"
+msgstr ""
diff --git a/addons/auth_totp_portal/i18n/pt.po b/addons/auth_totp_portal/i18n/pt.po
new file mode 100644
index 00000000..7b3378df
--- /dev/null
+++ b/addons/auth_totp_portal/i18n/pt.po
@@ -0,0 +1,54 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * auth_totp_portal
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 14.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-29 13:45+0000\n"
+"PO-Revision-Date: 2020-10-05 06:30+0000\n"
+"Language-Team: Portuguese (https://www.transifex.com/odoo/teams/41243/pt/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: pt\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "(Disable two-factor authentication)"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<i class=\"fa fa-warning\"/>\n"
+" Two-factor authentication not enabled"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<span class=\"text-success\">\n"
+" <i class=\"fa fa-check-circle\"/>\n"
+" Two-factor authentication enabled\n"
+" </span>"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Enable two-factor authentication"
+msgstr ""
+
+#. module: auth_totp_portal
+#. openerp-web
+#: code:addons/auth_totp_portal/static/src/js/totp_frontend.js:0
+#, python-format
+msgid "Operation failed for unknown reason."
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Two-factor authentication"
+msgstr ""
diff --git a/addons/auth_totp_portal/i18n/pt_BR.po b/addons/auth_totp_portal/i18n/pt_BR.po
new file mode 100644
index 00000000..ae0ee4b6
--- /dev/null
+++ b/addons/auth_totp_portal/i18n/pt_BR.po
@@ -0,0 +1,64 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * auth_totp_portal
+#
+# Translators:
+# Éder Brito <britoederr@gmail.com>, 2021
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 14.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-29 13:45+0000\n"
+"PO-Revision-Date: 2020-10-05 06:30+0000\n"
+"Last-Translator: Éder Brito <britoederr@gmail.com>, 2021\n"
+"Language-Team: Portuguese (Brazil) (https://www.transifex.com/odoo/teams/41243/pt_BR/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: pt_BR\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "(Disable two-factor authentication)"
+msgstr "(Desabilitar autenticação dois fatores)"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<i class=\"fa fa-warning\"/>\n"
+" Two-factor authentication not enabled"
+msgstr ""
+"<i class=\"fa fa-warning\"/>\n"
+" Autenticação dois fatores habilitada"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<span class=\"text-success\">\n"
+" <i class=\"fa fa-check-circle\"/>\n"
+" Two-factor authentication enabled\n"
+" </span>"
+msgstr ""
+"<span class=\"text-success\">\n"
+" <i class=\"fa fa-check-circle\"/>\n"
+" Autenticação dois fatores habilitada\n"
+" </span>"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Enable two-factor authentication"
+msgstr "Habilitar autenticação dois fatores"
+
+#. module: auth_totp_portal
+#. openerp-web
+#: code:addons/auth_totp_portal/static/src/js/totp_frontend.js:0
+#, python-format
+msgid "Operation failed for unknown reason."
+msgstr "A operação falhou por uma razão desconhecida."
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Two-factor authentication"
+msgstr "Autenticação dois fatores"
diff --git a/addons/auth_totp_portal/i18n/ro.po b/addons/auth_totp_portal/i18n/ro.po
new file mode 100644
index 00000000..b501ad08
--- /dev/null
+++ b/addons/auth_totp_portal/i18n/ro.po
@@ -0,0 +1,65 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * auth_totp_portal
+#
+# Translators:
+# Dorin Hongu <dhongu@gmail.com>, 2020
+# Foldi Robert <foldirobert@nexterp.ro>, 2020
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 14.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-29 13:45+0000\n"
+"PO-Revision-Date: 2020-10-05 06:30+0000\n"
+"Last-Translator: Foldi Robert <foldirobert@nexterp.ro>, 2020\n"
+"Language-Team: Romanian (https://www.transifex.com/odoo/teams/41243/ro/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: ro\n"
+"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "(Disable two-factor authentication)"
+msgstr "(Dezactivați autentificarea cu doi factori)"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<i class=\"fa fa-warning\"/>\n"
+" Two-factor authentication not enabled"
+msgstr ""
+"<i class=\"fa fa-warning\"/>\n"
+" Autentificarea cu doi factori nu este activată"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<span class=\"text-success\">\n"
+" <i class=\"fa fa-check-circle\"/>\n"
+" Two-factor authentication enabled\n"
+" </span>"
+msgstr ""
+"<span class=\"text-success\">\n"
+" <i class=\"fa fa-check-circle\"/>\n"
+" Autentificare cu doi factori activată\n"
+" </span>"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Enable two-factor authentication"
+msgstr "Activați autentificarea cu doi factori"
+
+#. module: auth_totp_portal
+#. openerp-web
+#: code:addons/auth_totp_portal/static/src/js/totp_frontend.js:0
+#, python-format
+msgid "Operation failed for unknown reason."
+msgstr "Operația a eșuat din motive necunoscute."
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Two-factor authentication"
+msgstr "Autentificare cu doi factori"
diff --git a/addons/auth_totp_portal/i18n/ru.po b/addons/auth_totp_portal/i18n/ru.po
new file mode 100644
index 00000000..7010344e
--- /dev/null
+++ b/addons/auth_totp_portal/i18n/ru.po
@@ -0,0 +1,58 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * auth_totp_portal
+#
+# Translators:
+# Сергей Шебанин <sergey@shebanin.ru>, 2021
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 14.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-29 13:45+0000\n"
+"PO-Revision-Date: 2020-10-05 06:30+0000\n"
+"Last-Translator: Сергей Шебанин <sergey@shebanin.ru>, 2021\n"
+"Language-Team: Russian (https://www.transifex.com/odoo/teams/41243/ru/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: ru\n"
+"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "(Disable two-factor authentication)"
+msgstr "(Отключить двухфакторную аутентификацию)"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<i class=\"fa fa-warning\"/>\n"
+" Two-factor authentication not enabled"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<span class=\"text-success\">\n"
+" <i class=\"fa fa-check-circle\"/>\n"
+" Two-factor authentication enabled\n"
+" </span>"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Enable two-factor authentication"
+msgstr "Включить двухфакторную аутентификацию"
+
+#. module: auth_totp_portal
+#. openerp-web
+#: code:addons/auth_totp_portal/static/src/js/totp_frontend.js:0
+#, python-format
+msgid "Operation failed for unknown reason."
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Two-factor authentication"
+msgstr "Двухфакторная аутентификация"
diff --git a/addons/auth_totp_portal/i18n/si.po b/addons/auth_totp_portal/i18n/si.po
new file mode 100644
index 00000000..af43c34c
--- /dev/null
+++ b/addons/auth_totp_portal/i18n/si.po
@@ -0,0 +1,54 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * auth_totp_portal
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 14.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-29 13:45+0000\n"
+"PO-Revision-Date: 2020-10-05 06:30+0000\n"
+"Language-Team: Sinhala (https://www.transifex.com/odoo/teams/41243/si/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: si\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "(Disable two-factor authentication)"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<i class=\"fa fa-warning\"/>\n"
+" Two-factor authentication not enabled"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<span class=\"text-success\">\n"
+" <i class=\"fa fa-check-circle\"/>\n"
+" Two-factor authentication enabled\n"
+" </span>"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Enable two-factor authentication"
+msgstr ""
+
+#. module: auth_totp_portal
+#. openerp-web
+#: code:addons/auth_totp_portal/static/src/js/totp_frontend.js:0
+#, python-format
+msgid "Operation failed for unknown reason."
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Two-factor authentication"
+msgstr ""
diff --git a/addons/auth_totp_portal/i18n/sk.po b/addons/auth_totp_portal/i18n/sk.po
new file mode 100644
index 00000000..57300bd0
--- /dev/null
+++ b/addons/auth_totp_portal/i18n/sk.po
@@ -0,0 +1,54 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * auth_totp_portal
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 14.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-29 13:45+0000\n"
+"PO-Revision-Date: 2020-10-05 06:30+0000\n"
+"Language-Team: Slovak (https://www.transifex.com/odoo/teams/41243/sk/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: sk\n"
+"Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);\n"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "(Disable two-factor authentication)"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<i class=\"fa fa-warning\"/>\n"
+" Two-factor authentication not enabled"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<span class=\"text-success\">\n"
+" <i class=\"fa fa-check-circle\"/>\n"
+" Two-factor authentication enabled\n"
+" </span>"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Enable two-factor authentication"
+msgstr ""
+
+#. module: auth_totp_portal
+#. openerp-web
+#: code:addons/auth_totp_portal/static/src/js/totp_frontend.js:0
+#, python-format
+msgid "Operation failed for unknown reason."
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Two-factor authentication"
+msgstr ""
diff --git a/addons/auth_totp_portal/i18n/sl.po b/addons/auth_totp_portal/i18n/sl.po
new file mode 100644
index 00000000..978a5348
--- /dev/null
+++ b/addons/auth_totp_portal/i18n/sl.po
@@ -0,0 +1,54 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * auth_totp_portal
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 14.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-29 13:45+0000\n"
+"PO-Revision-Date: 2020-10-05 06:30+0000\n"
+"Language-Team: Slovenian (https://www.transifex.com/odoo/teams/41243/sl/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: sl\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_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "(Disable two-factor authentication)"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<i class=\"fa fa-warning\"/>\n"
+" Two-factor authentication not enabled"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<span class=\"text-success\">\n"
+" <i class=\"fa fa-check-circle\"/>\n"
+" Two-factor authentication enabled\n"
+" </span>"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Enable two-factor authentication"
+msgstr ""
+
+#. module: auth_totp_portal
+#. openerp-web
+#: code:addons/auth_totp_portal/static/src/js/totp_frontend.js:0
+#, python-format
+msgid "Operation failed for unknown reason."
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Two-factor authentication"
+msgstr ""
diff --git a/addons/auth_totp_portal/i18n/sv.po b/addons/auth_totp_portal/i18n/sv.po
new file mode 100644
index 00000000..0f007411
--- /dev/null
+++ b/addons/auth_totp_portal/i18n/sv.po
@@ -0,0 +1,54 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * auth_totp_portal
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 14.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-29 13:45+0000\n"
+"PO-Revision-Date: 2020-10-05 06:30+0000\n"
+"Language-Team: Swedish (https://www.transifex.com/odoo/teams/41243/sv/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: sv\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "(Disable two-factor authentication)"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<i class=\"fa fa-warning\"/>\n"
+" Two-factor authentication not enabled"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<span class=\"text-success\">\n"
+" <i class=\"fa fa-check-circle\"/>\n"
+" Two-factor authentication enabled\n"
+" </span>"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Enable two-factor authentication"
+msgstr ""
+
+#. module: auth_totp_portal
+#. openerp-web
+#: code:addons/auth_totp_portal/static/src/js/totp_frontend.js:0
+#, python-format
+msgid "Operation failed for unknown reason."
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Two-factor authentication"
+msgstr ""
diff --git a/addons/auth_totp_portal/i18n/th.po b/addons/auth_totp_portal/i18n/th.po
new file mode 100644
index 00000000..73d237e3
--- /dev/null
+++ b/addons/auth_totp_portal/i18n/th.po
@@ -0,0 +1,54 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * auth_totp_portal
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 14.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-29 13:45+0000\n"
+"PO-Revision-Date: 2020-10-05 06:30+0000\n"
+"Language-Team: Thai (https://www.transifex.com/odoo/teams/41243/th/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: th\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "(Disable two-factor authentication)"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<i class=\"fa fa-warning\"/>\n"
+" Two-factor authentication not enabled"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<span class=\"text-success\">\n"
+" <i class=\"fa fa-check-circle\"/>\n"
+" Two-factor authentication enabled\n"
+" </span>"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Enable two-factor authentication"
+msgstr ""
+
+#. module: auth_totp_portal
+#. openerp-web
+#: code:addons/auth_totp_portal/static/src/js/totp_frontend.js:0
+#, python-format
+msgid "Operation failed for unknown reason."
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Two-factor authentication"
+msgstr ""
diff --git a/addons/auth_totp_portal/i18n/tr.po b/addons/auth_totp_portal/i18n/tr.po
new file mode 100644
index 00000000..28b23b22
--- /dev/null
+++ b/addons/auth_totp_portal/i18n/tr.po
@@ -0,0 +1,64 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * auth_totp_portal
+#
+# Translators:
+# Nadir Gazioglu <nadirgazioglu@gmail.com>, 2021
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 14.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-29 13:45+0000\n"
+"PO-Revision-Date: 2020-10-05 06:30+0000\n"
+"Last-Translator: Nadir Gazioglu <nadirgazioglu@gmail.com>, 2021\n"
+"Language-Team: Turkish (https://www.transifex.com/odoo/teams/41243/tr/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: tr\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "(Disable two-factor authentication)"
+msgstr "(İki faktörlü kimlik doğrulamayı devre dışı bırakın)"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<i class=\"fa fa-warning\"/>\n"
+" Two-factor authentication not enabled"
+msgstr ""
+"<i class=\"fa fa-warning\"/>\n"
+" İki faktörlü kimlik doğrulama etkinleştirilmedi"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<span class=\"text-success\">\n"
+" <i class=\"fa fa-check-circle\"/>\n"
+" Two-factor authentication enabled\n"
+" </span>"
+msgstr ""
+"<span class=\"text-success\">\n"
+" <i class=\"fa fa-check-circle\"/>\n"
+" İki faktörlü kimlik doğrulama etkinleştirildi\n"
+" </span>"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Enable two-factor authentication"
+msgstr "İki faktörlü kimlik doğrulamayı etkinleştirin"
+
+#. module: auth_totp_portal
+#. openerp-web
+#: code:addons/auth_totp_portal/static/src/js/totp_frontend.js:0
+#, python-format
+msgid "Operation failed for unknown reason."
+msgstr "Bilinmeyen bir nedenle işlem başarısız oldu."
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Two-factor authentication"
+msgstr "İki faktörlü kimlik doğrulama"
diff --git a/addons/auth_totp_portal/i18n/uk.po b/addons/auth_totp_portal/i18n/uk.po
new file mode 100644
index 00000000..1eae9b31
--- /dev/null
+++ b/addons/auth_totp_portal/i18n/uk.po
@@ -0,0 +1,64 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * auth_totp_portal
+#
+# Translators:
+# Alina Lisnenko <alinasemeniuk1@gmail.com>, 2020
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 14.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-29 13:45+0000\n"
+"PO-Revision-Date: 2020-10-05 06:30+0000\n"
+"Last-Translator: Alina Lisnenko <alinasemeniuk1@gmail.com>, 2020\n"
+"Language-Team: Ukrainian (https://www.transifex.com/odoo/teams/41243/uk/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: uk\n"
+"Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);\n"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "(Disable two-factor authentication)"
+msgstr "(Вимкнути двофакторну аутентифікацію)"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<i class=\"fa fa-warning\"/>\n"
+" Two-factor authentication not enabled"
+msgstr ""
+"<i class=\"fa fa-warning\"/>\n"
+" Двофакторна аутентифікація вимкнена"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<span class=\"text-success\">\n"
+" <i class=\"fa fa-check-circle\"/>\n"
+" Two-factor authentication enabled\n"
+" </span>"
+msgstr ""
+"<span class=\"text-success\">\n"
+" <i class=\"fa fa-check-circle\"/>\n"
+" Двофакторна аутентифікація вимкнута\n"
+" </span>"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Enable two-factor authentication"
+msgstr "Увімкнути двофакторну аутентифікацію"
+
+#. module: auth_totp_portal
+#. openerp-web
+#: code:addons/auth_totp_portal/static/src/js/totp_frontend.js:0
+#, python-format
+msgid "Operation failed for unknown reason."
+msgstr "Операція не вдалася через невідому помилку."
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Two-factor authentication"
+msgstr "Двофакторна аутентифікація"
diff --git a/addons/auth_totp_portal/i18n/ur.po b/addons/auth_totp_portal/i18n/ur.po
new file mode 100644
index 00000000..2fb64bab
--- /dev/null
+++ b/addons/auth_totp_portal/i18n/ur.po
@@ -0,0 +1,54 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * auth_totp_portal
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 14.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-29 13:45+0000\n"
+"PO-Revision-Date: 2020-10-05 06:30+0000\n"
+"Language-Team: Urdu (https://www.transifex.com/odoo/teams/41243/ur/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: ur\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "(Disable two-factor authentication)"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<i class=\"fa fa-warning\"/>\n"
+" Two-factor authentication not enabled"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<span class=\"text-success\">\n"
+" <i class=\"fa fa-check-circle\"/>\n"
+" Two-factor authentication enabled\n"
+" </span>"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Enable two-factor authentication"
+msgstr ""
+
+#. module: auth_totp_portal
+#. openerp-web
+#: code:addons/auth_totp_portal/static/src/js/totp_frontend.js:0
+#, python-format
+msgid "Operation failed for unknown reason."
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Two-factor authentication"
+msgstr ""
diff --git a/addons/auth_totp_portal/i18n/vi.po b/addons/auth_totp_portal/i18n/vi.po
new file mode 100644
index 00000000..0ab65706
--- /dev/null
+++ b/addons/auth_totp_portal/i18n/vi.po
@@ -0,0 +1,58 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * auth_totp_portal
+#
+# Translators:
+# Trần Hà <tranthuha13590@gmail.com>, 2021
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 14.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-29 13:45+0000\n"
+"PO-Revision-Date: 2020-10-05 06:30+0000\n"
+"Last-Translator: Trần Hà <tranthuha13590@gmail.com>, 2021\n"
+"Language-Team: Vietnamese (https://www.transifex.com/odoo/teams/41243/vi/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: vi\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "(Disable two-factor authentication)"
+msgstr "(Disable two-factor authentication)"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<i class=\"fa fa-warning\"/>\n"
+" Two-factor authentication not enabled"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<span class=\"text-success\">\n"
+" <i class=\"fa fa-check-circle\"/>\n"
+" Two-factor authentication enabled\n"
+" </span>"
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Enable two-factor authentication"
+msgstr "Enable two-factor authentication"
+
+#. module: auth_totp_portal
+#. openerp-web
+#: code:addons/auth_totp_portal/static/src/js/totp_frontend.js:0
+#, python-format
+msgid "Operation failed for unknown reason."
+msgstr ""
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Two-factor authentication"
+msgstr ""
diff --git a/addons/auth_totp_portal/i18n/zh_CN.po b/addons/auth_totp_portal/i18n/zh_CN.po
new file mode 100644
index 00000000..60bb333b
--- /dev/null
+++ b/addons/auth_totp_portal/i18n/zh_CN.po
@@ -0,0 +1,64 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * auth_totp_portal
+#
+# Translators:
+# 稀饭~~ <wangwhai@qq.com>, 2020
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 14.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-29 13:45+0000\n"
+"PO-Revision-Date: 2020-10-05 06:30+0000\n"
+"Last-Translator: 稀饭~~ <wangwhai@qq.com>, 2020\n"
+"Language-Team: Chinese (China) (https://www.transifex.com/odoo/teams/41243/zh_CN/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: zh_CN\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "(Disable two-factor authentication)"
+msgstr "(禁用双重身份验证)"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<i class=\"fa fa-warning\"/>\n"
+" Two-factor authentication not enabled"
+msgstr ""
+"<i class=\"fa fa-warning\"/>\n"
+" 未启用双重身份验证"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<span class=\"text-success\">\n"
+" <i class=\"fa fa-check-circle\"/>\n"
+" Two-factor authentication enabled\n"
+" </span>"
+msgstr ""
+"<span class=\"text-success\">\n"
+" <i class=\"fa fa-check-circle\"/>\n"
+" 启用双重身份验证\n"
+" </span>"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Enable two-factor authentication"
+msgstr "启用双重身份验证"
+
+#. module: auth_totp_portal
+#. openerp-web
+#: code:addons/auth_totp_portal/static/src/js/totp_frontend.js:0
+#, python-format
+msgid "Operation failed for unknown reason."
+msgstr "由于未知原因,操作失败。"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Two-factor authentication"
+msgstr "双重身份验证"
diff --git a/addons/auth_totp_portal/i18n/zh_TW.po b/addons/auth_totp_portal/i18n/zh_TW.po
new file mode 100644
index 00000000..628b675c
--- /dev/null
+++ b/addons/auth_totp_portal/i18n/zh_TW.po
@@ -0,0 +1,64 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * auth_totp_portal
+#
+# Translators:
+# 敬雲 林 <chingyun@yuanchih-consult.com>, 2020
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 14.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-09-29 13:45+0000\n"
+"PO-Revision-Date: 2020-10-05 06:30+0000\n"
+"Last-Translator: 敬雲 林 <chingyun@yuanchih-consult.com>, 2020\n"
+"Language-Team: Chinese (Taiwan) (https://www.transifex.com/odoo/teams/41243/zh_TW/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Language: zh_TW\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "(Disable two-factor authentication)"
+msgstr "(停用兩步驟驗證)"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<i class=\"fa fa-warning\"/>\n"
+" Two-factor authentication not enabled"
+msgstr ""
+"<i class=\"fa fa-warning\"/>\n"
+" 未啟用兩步驟驗證"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid ""
+"<span class=\"text-success\">\n"
+" <i class=\"fa fa-check-circle\"/>\n"
+" Two-factor authentication enabled\n"
+" </span>"
+msgstr ""
+"<span class=\"text-success\">\n"
+" <i class=\"fa fa-check-circle\"/>\n"
+" 啟用兩步驟驗證\n"
+" </span>"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Enable two-factor authentication"
+msgstr "啟用兩步驟驗證"
+
+#. module: auth_totp_portal
+#. openerp-web
+#: code:addons/auth_totp_portal/static/src/js/totp_frontend.js:0
+#, python-format
+msgid "Operation failed for unknown reason."
+msgstr "由於未知原因,操作失敗。"
+
+#. module: auth_totp_portal
+#: model_terms:ir.ui.view,arch_db:auth_totp_portal.totp_portal_hook
+msgid "Two-factor authentication"
+msgstr "兩步驟驗證"
diff --git a/addons/auth_totp_portal/security/security.xml b/addons/auth_totp_portal/security/security.xml
new file mode 100644
index 00000000..f9c4c2f7
--- /dev/null
+++ b/addons/auth_totp_portal/security/security.xml
@@ -0,0 +1,16 @@
+<odoo>
+ <!-- copies ACL for portal users -->
+ <record model="ir.model.access" id="access_auth_totp_portal_wizard">
+ <field name="name">auth_totp_portal wizard access rules</field>
+ <field name="model_id" ref="auth_totp.model_auth_totp_wizard"/>
+ <field name="group_id" ref="base.group_portal"/>
+ <field name="perm_read">1</field>
+ <field name="perm_write">1</field>
+ <field name="perm_create">1</field>
+ <field name="perm_unlink">1</field>
+ </record>
+ <!-- adds portal users to rule -->
+ <record model="ir.rule" id="auth_totp.rule_auth_totp_wizard">
+ <field name="groups" eval="[(4, ref('base.group_portal'))]"/>
+ </record>
+</odoo>
diff --git a/addons/auth_totp_portal/static/src/js/totp_frontend.js b/addons/auth_totp_portal/static/src/js/totp_frontend.js
new file mode 100644
index 00000000..5f559703
--- /dev/null
+++ b/addons/auth_totp_portal/static/src/js/totp_frontend.js
@@ -0,0 +1,221 @@
+odoo.define('auth_totp_portal.button', function (require) {
+'use strict';
+
+const {_t} = require('web.core');
+const publicWidget = require('web.public.widget');
+const Dialog = require('web.Dialog');
+const {handleCheckIdentity} = require('portal.portal');
+
+/**
+ * Replaces specific <field> elements by normal HTML, strip out the rest entirely
+ */
+function fromField(f, record) {
+ switch (f.getAttribute('name')) {
+ case 'qrcode':
+ const qrcode = document.createElement('img');
+ qrcode.setAttribute('class', 'img img-fluid offset-1');
+ qrcode.setAttribute('src', 'data:image/png;base64,' + record['qrcode']);
+ return qrcode;
+ case 'url':
+ const url = document.createElement('a');
+ url.setAttribute('href', record['url']);
+ url.textContent = f.getAttribute('text') || record['url'];
+ return url;
+ case 'code':
+ const code = document.createElement('input');
+ code.setAttribute('name', 'code');
+ code.setAttribute('class', 'form-control col-10 col-md-6');
+ code.setAttribute('placeholder', '6-digit code');
+ code.required = true;
+ code.maxLength = 6;
+ code.minLength = 6;
+ return code;
+ default: // just display the field's data
+ return document.createTextNode(record[f.getAttribute('name')] || '');
+ }
+}
+
+/**
+ * Apparently chrome literally absolutely can't handle parsing XML and using
+ * those nodes in an HTML document (even when parsing as application/xhtml+xml),
+ * this results in broken rendering and a number of things not working (e.g.
+ * classes) without any specific warning in the console or anything, things are
+ * just broken with no indication of why.
+ *
+ * So... rebuild the entire f'ing body using document.createElement to ensure
+ * we have HTML elements.
+ *
+ * This is a recursive implementation so it's not super efficient but the views
+ * to fixup *should* be relatively simple.
+ */
+function fixupViewBody(oldNode, record) {
+ let qrcode = null, code = null, node = null;
+
+ switch (oldNode.nodeType) {
+ case 1: // element
+ if (oldNode.tagName === 'field') {
+ node = fromField(oldNode, record);
+ switch (oldNode.getAttribute('name')) {
+ case 'qrcode':
+ qrcode = node;
+ break;
+ case 'code':
+ code = node;
+ break
+ }
+ break; // no need to recurse here
+ }
+ node = document.createElement(oldNode.tagName);
+ for(let i=0; i<oldNode.attributes.length; ++i) {
+ const attr = oldNode.attributes[i];
+ node.setAttribute(attr.name, attr.value);
+ }
+ for(let j=0; j<oldNode.childNodes.length; ++j) {
+ const [ch, qr, co] = fixupViewBody(oldNode.childNodes[j], record);
+ if (ch) { node.appendChild(ch); }
+ if (qr) { qrcode = qr; }
+ if (co) { code = co; }
+ }
+ break;
+ case 3: case 4: // text, cdata
+ node = document.createTextNode(oldNode.data);
+ break;
+ default:
+ // don't care about PI & al
+ }
+
+ return [node, qrcode, code]
+}
+
+/**
+ * Converts a backend <button> element and a bunch of metadata into a structure
+ * which can kinda be of use to Dialog.
+ */
+class Button {
+ constructor(parent, model, record_id, input_node, button_node) {
+ this._parent = parent;
+ this.model = model;
+ this.record_id = record_id;
+ this.input = input_node;
+ this.text = button_node.getAttribute('string');
+ this.classes = button_node.getAttribute('class') || null;
+ this.action = button_node.getAttribute('name');
+ if (button_node.getAttribute('special') === 'cancel') {
+ this.close = true;
+ this.click = null;
+ } else {
+ this.close = false;
+ // because Dialog doesnt' call() click on the descriptor object
+ this.click = this._click.bind(this);
+ }
+ }
+ async _click() {
+ if (!this.input.reportValidity()) {
+ this.input.classList.add('is-invalid');
+ return;
+ }
+
+ try {
+ await this.callAction(this.record_id, {code: this.input.value});
+ } catch (e) {
+ this.input.classList.add('is-invalid');
+ // show custom validity error message
+ this.input.setCustomValidity(e.message);
+ this.input.reportValidity();
+ return;
+ }
+ this.input.classList.remove('is-invalid');
+ // reloads page, avoid window.location.reload() because it re-posts forms
+ window.location = window.location;
+ }
+ async callAction(id, update) {
+ try {
+ await this._parent._rpc({model: this.model, method: 'write', args: [id, update]});
+ await handleCheckIdentity(
+ this._parent.proxy('_rpc'),
+ this._parent._rpc({model: this.model, method: this.action, args: [id]})
+ );
+ } catch(e) {
+ // avoid error toast (crashmanager)
+ e.event.preventDefault();
+ // try to unwrap mess of an error object to a usable error message
+ throw new Error(
+ !e.message ? e.toString()
+ : !e.message.data ? e.message.message
+ : e.message.data.message || _t("Operation failed for unknown reason.")
+ );
+ }
+ }
+}
+
+publicWidget.registry.TOTPButton = publicWidget.Widget.extend({
+ selector: '#auth_totp_portal_enable',
+ events: {
+ click: '_onClick',
+ },
+
+ async _onClick(e) {
+ e.preventDefault();
+
+ const w = await handleCheckIdentity(this.proxy('_rpc'), this._rpc({
+ model: 'res.users',
+ method: 'totp_enable_wizard',
+ args: [this.getSession().user_id]
+ }));
+
+ if (!w) {
+ // TOTP probably already enabled, just reload page
+ window.location = window.location;
+ return;
+ }
+
+ const {res_model: model, res_id: wizard_id} = w;
+
+ const record = await this._rpc({
+ model, method: 'read', args: [wizard_id, []]
+ }).then(ar => ar[0]);
+
+ const doc = new DOMParser().parseFromString(
+ document.getElementById('totp_wizard_view').textContent,
+ 'application/xhtml+xml'
+ );
+
+ const xmlBody = doc.querySelector('sheet *');
+ const [body, , codeInput] = fixupViewBody(xmlBody, record);
+ // remove custom validity error message any time the field changes
+ // otherwise it sticks and browsers suppress submit
+ codeInput.addEventListener('input', () => codeInput.setCustomValidity(''));
+
+ const buttons = [];
+ for(const button of doc.querySelectorAll('footer button')) {
+ buttons.push(new Button(this, model, record.id, codeInput, button));
+ }
+
+ // wrap in a root host of .modal-body otherwise it breaks our neat flex layout
+ const $content = document.createElement('form');
+ $content.appendChild(body);
+ // implicit submission by pressing [return] from within input
+ $content.addEventListener('submit', (e) => {
+ e.preventDefault();
+ // sadness: footer not available as normal element
+ dialog.$footer.find('.btn-primary').click();
+ });
+ var dialog = new Dialog(this, {$content, buttons}).open();
+ }
+});
+publicWidget.registry.DisableTOTPButton = publicWidget.Widget.extend({
+ selector: '#auth_totp_portal_disable',
+ events: {
+ click: '_onClick'
+ },
+
+ async _onClick(e) {
+ e.preventDefault();
+ await handleCheckIdentity(
+ this.proxy('_rpc'),
+ this._rpc({model: 'res.users', method: 'totp_disable', args: [this.getSession().user_id]})
+ )
+ window.location = window.location;
+ }
+});
+});
diff --git a/addons/auth_totp_portal/static/tests/totp_portal.js b/addons/auth_totp_portal/static/tests/totp_portal.js
new file mode 100644
index 00000000..6424647a
--- /dev/null
+++ b/addons/auth_totp_portal/static/tests/totp_portal.js
@@ -0,0 +1,124 @@
+odoo.define('auth_totp_portal.tours', function(require) {
+"use strict";
+
+const tour = require('web_tour.tour');
+const ajax = require('web.ajax');
+
+tour.register('totportal_tour_setup', {
+ test: true,
+ url: '/my/security'
+}, [{
+ content: "Open totp wizard",
+ trigger: 'button#auth_totp_portal_enable',
+}, {
+ content: "Check that we have to enter enhanced security mode",
+ trigger: 'div:contains("confirm your password")',
+ run: () => {},
+}, {
+ content: "Input password",
+ trigger: '[name=password]',
+ run: 'text portal', // FIXME: better way to do this?
+}, {
+ content: "Confirm",
+ trigger: "button:contains(Confirm Password)",
+}, {
+ content: "Check the wizard has opened",
+ trigger: 'div:contains("Scan the image below")',
+ run: () => {}
+}, {
+ content: "Get secret from collapsed div",
+ trigger: 'a:contains("show the code")',
+ run: async function(helpers) {
+ const secret = this.$anchor.closest('div').find('code').text();
+ const token = await ajax.jsonRpc('/totphook', 'call', {
+ secret
+ });
+ helpers._text(helpers._get_action_values('input[name=code]'), token);
+ helpers._click(helpers._get_action_values('button.btn-primary:contains(Enable)'));
+ }
+}, {
+ content: "Check that the button has changed",
+ trigger: 'button:contains(Disable two-factor authentication)',
+ run: () => {}
+}]);
+
+tour.register('totportal_login_enabled', {
+ test: true,
+ url: '/'
+}, [{
+ content: "check that we're on the login page or go to it",
+ trigger: 'input#login, a:contains(Sign in)'
+}, {
+ content: "input login",
+ trigger: 'input#login',
+ run: 'text portal',
+}, {
+ content: 'input password',
+ trigger: 'input#password',
+ run: 'text portal',
+}, {
+ content: "click da button",
+ trigger: 'button:contains("Log in")',
+}, {
+ content: "expect totp screen",
+ trigger: 'label:contains(Authentication Code)',
+}, {
+ content: "input code",
+ trigger: 'input[name=totp_token]',
+ run: async function (helpers) {
+ const token = await ajax.jsonRpc('/totphook', 'call', {});
+ helpers._text(helpers._get_action_values(), token);
+ // FIXME: is there a way to put the button as its own step trigger without
+ // the tour straight blowing through and not waiting for this?
+ helpers._click(helpers._get_action_values('button:contains("Verify")'));
+ }
+}, {
+ content: "check we're logged in",
+ trigger: "h3:contains(Documents)",
+ run: () => {}
+}, {
+ content: "go back to security",
+ trigger: "a:contains(Security)",
+},{
+ content: "Open totp wizard",
+ trigger: 'button#auth_totp_portal_disable',
+}, {
+ content: "Check that we have to enter enhanced security mode",
+ trigger: 'div:contains("confirm your password")',
+ run: () => {},
+}, {
+ content: "Input password",
+ trigger: '[name=password]',
+ run: 'text portal', // FIXME: better way to do this?
+}, {
+ content: "Confirm",
+ trigger: "button:contains(Confirm Password)",
+}, {
+ content: "Check that the button has changed",
+ trigger: 'button:contains(Enable two-factor authentication)',
+ run: () => {}
+}]);
+
+tour.register('totportal_login_disabled', {
+ test: true,
+ url: '/'
+}, [{
+ content: "check that we're on the login page or go to it",
+ trigger: 'input#login, a:contains(Sign in)'
+}, {
+ content: "input login",
+ trigger: 'input#login',
+ run: 'text portal',
+}, {
+ content: 'input password',
+ trigger: 'input#password',
+ run: 'text portal',
+}, {
+ content: "click da button",
+ trigger: 'button:contains("Log in")',
+}, {
+ content: "check we're logged in",
+ trigger: "h3:contains(Documents)",
+ run: () => {}
+}]);
+});
diff --git a/addons/auth_totp_portal/tests/__init__.py b/addons/auth_totp_portal/tests/__init__.py
new file mode 100644
index 00000000..f49429ef
--- /dev/null
+++ b/addons/auth_totp_portal/tests/__init__.py
@@ -0,0 +1 @@
+from . import test_tour
diff --git a/addons/auth_totp_portal/tests/test_tour.py b/addons/auth_totp_portal/tests/test_tour.py
new file mode 100644
index 00000000..242c9f0d
--- /dev/null
+++ b/addons/auth_totp_portal/tests/test_tour.py
@@ -0,0 +1,44 @@
+import time
+
+from passlib.totp import TOTP
+
+from odoo import http
+from odoo.tests import tagged, HttpCase
+from odoo.addons.auth_totp.controllers.home import Home
+
+
+@tagged('post_install', '-at_install')
+class TestTOTPortal(HttpCase):
+ """
+ Largely replicates TestTOTP
+ """
+ def test_totp(self):
+ totp = None
+ # test endpoint as doing totp on the client side is not really an option
+ # (needs sha1 and hmac + BE packing of 64b integers)
+ def totp_hook(self, secret=None):
+ nonlocal totp
+ if totp is None:
+ totp = TOTP(secret)
+ if secret:
+ return totp.generate().token
+ else:
+ # on check, take advantage of window because previous token has been
+ # "burned" so we can't generate the same, but tour is so fast
+ # we're pretty certainly within the same 30s
+ return totp.generate(time.time() + 30).token
+ # because not preprocessed by ControllerType metaclass
+ totp_hook.routing_type = 'json'
+ # patch Home to add test endpoint
+ Home.totp_hook = http.route('/totphook', type='json', auth='none')(totp_hook)
+ self.env['ir.http']._clear_routing_map()
+ # remove endpoint and destroy routing map
+ @self.addCleanup
+ def _cleanup():
+ del Home.totp_hook
+ self.env['ir.http']._clear_routing_map()
+
+ self.start_tour('/my/security', 'totportal_tour_setup', login='portal')
+ # also disables totp otherwise we can't re-login
+ self.start_tour('/', 'totportal_login_enabled', login=None)
+ self.start_tour('/', 'totportal_login_disabled', login=None)
diff --git a/addons/auth_totp_portal/views/templates.xml b/addons/auth_totp_portal/views/templates.xml
new file mode 100644
index 00000000..48120eb7
--- /dev/null
+++ b/addons/auth_totp_portal/views/templates.xml
@@ -0,0 +1,48 @@
+<odoo>
+ <template id="auth_totp_frontend" name="TOTP frontend (portal)" inherit_id="portal.assets_frontend">
+ <xpath expr="." position="inside">
+ <script type="application/javascript"
+ src="/auth_totp_portal/static/src/js/totp_frontend.js"/>
+ </xpath>
+ </template>
+ <template id="assets_tests" inherit_id="web.assets_tests">
+ <xpath expr="." position="inside">
+ <script type="text/javascript" src="/auth_totp_portal/static/tests/totp_portal.js"></script>
+ </xpath>
+ </template>
+
+ <template id="totp_portal_hook" name="TOTP Portal hook" inherit_id="portal.portal_my_security">
+ <xpath expr="//div[hasclass('o_portal_security_body')]">
+ <!--
+ portal users don't have access to non-qweb views anymore, so
+ embed the target view as a *data island* of sorts, a JSON embed
+ of the fields_view_get could have been nice but at 14k it'd be a
+ bit ridiculous
+ -->
+ <div class="d-none" id="totp_wizard_view">
+ <t t-esc="env.ref('auth_totp.view_totp_wizard').sudo().read_combined(['arch'])['arch']"/>
+ </div>
+ <section>
+ <h3>Two-factor authentication</h3>
+ <t t-if="not user_id.totp_enabled">
+ <div class="alert alert-secondary" role="status">
+ <i class="fa fa-warning"/>
+ Two-factor authentication not enabled
+ </div>
+ <button type="button" class="btn btn-secondary" id="auth_totp_portal_enable">
+ Enable two-factor authentication
+ </button>
+ </t>
+ <t t-else="">
+ <span class="text-success">
+ <i class="fa fa-check-circle"/>
+ Two-factor authentication enabled
+ </span>
+ <button type="button" class="btn btn-link" id="auth_totp_portal_disable">
+ (Disable two-factor authentication)
+ </button>
+ </t>
+ </section>
+ </xpath>
+ </template>
+</odoo>