summaryrefslogtreecommitdiff
path: root/addons/auth_password_policy_portal
diff options
context:
space:
mode:
Diffstat (limited to 'addons/auth_password_policy_portal')
-rw-r--r--addons/auth_password_policy_portal/__init__.py2
-rw-r--r--addons/auth_password_policy_portal/__manifest__.py8
-rw-r--r--addons/auth_password_policy_portal/controllers.py10
-rw-r--r--addons/auth_password_policy_portal/static/src/scss/portal_policy.scss6
-rw-r--r--addons/auth_password_policy_portal/views/templates.xml17
5 files changed, 43 insertions, 0 deletions
diff --git a/addons/auth_password_policy_portal/__init__.py b/addons/auth_password_policy_portal/__init__.py
new file mode 100644
index 00000000..153a9e31
--- /dev/null
+++ b/addons/auth_password_policy_portal/__init__.py
@@ -0,0 +1,2 @@
+# -*- coding: utf-8 -*-
+from . import controllers
diff --git a/addons/auth_password_policy_portal/__manifest__.py b/addons/auth_password_policy_portal/__manifest__.py
new file mode 100644
index 00000000..40ebdb6d
--- /dev/null
+++ b/addons/auth_password_policy_portal/__manifest__.py
@@ -0,0 +1,8 @@
+{
+ 'name': "Password Policy support for Signup",
+ 'depends': ['auth_password_policy', 'portal'],
+ 'category': 'Tools',
+ 'auto_install': True,
+ 'data': ['views/templates.xml'],
+ 'license': 'LGPL-3',
+}
diff --git a/addons/auth_password_policy_portal/controllers.py b/addons/auth_password_policy_portal/controllers.py
new file mode 100644
index 00000000..89678520
--- /dev/null
+++ b/addons/auth_password_policy_portal/controllers.py
@@ -0,0 +1,10 @@
+# -*- coding: utf-8 -*-
+
+from odoo.http import request
+from odoo.addons.portal.controllers.portal import CustomerPortal
+
+class CustomerPortalPasswordPolicy(CustomerPortal):
+ def _prepare_portal_layout_values(self):
+ d = super()._prepare_portal_layout_values()
+ d['password_minimum_length'] = request.env['ir.config_parameter'].sudo().get_param('auth_password_policy.minlength')
+ return d
diff --git a/addons/auth_password_policy_portal/static/src/scss/portal_policy.scss b/addons/auth_password_policy_portal/static/src/scss/portal_policy.scss
new file mode 100644
index 00000000..8a3cb187
--- /dev/null
+++ b/addons/auth_password_policy_portal/static/src/scss/portal_policy.scss
@@ -0,0 +1,6 @@
+.o_portal_security_body #new-password-group {
+ position: relative;
+ meter {
+ bottom: calc(#{$input-height-sm} / 2 - 7px);
+ }
+}
diff --git a/addons/auth_password_policy_portal/views/templates.xml b/addons/auth_password_policy_portal/views/templates.xml
new file mode 100644
index 00000000..427ee055
--- /dev/null
+++ b/addons/auth_password_policy_portal/views/templates.xml
@@ -0,0 +1,17 @@
+<odoo>
+ <template id="assets_frontend" inherit_id="web.assets_frontend" name="Portal Password Policy Assets">
+ <xpath expr="." position="inside">
+ <link rel="stylesheet" type="text/scss" href="/auth_password_policy_portal/static/src/scss/portal_policy.scss"/>
+ </xpath>
+ </template>
+ <template id="portal_my_security" inherit_id="portal.portal_my_security"
+ name="Password policy data for portal">
+ <xpath expr="//div[hasclass('form-group')][input[@name='new1']]" position="attributes">
+ <attribute name="id">new-password-group</attribute>
+ </xpath>
+ <!-- only put meter on first "new password" field since both must be identical -->
+ <xpath expr="//input[@name='new1']" position="attributes">
+ <attribute name="t-att-minlength">password_minimum_length</attribute>
+ </xpath>
+ </template>
+</odoo>