如何在ODOO(OpenERP)中为密码添加更多安全策略

时间:2015-06-01 19:25:01

标签: openerp odoo openerp-7 openerp-8 odoo-8

如何在用户或员工表单上添加所需的密码策略,数字(0 ... 9),特殊字符(@,*,...),密码大小> 6,大写字母(A ... Z)等

您是否有任何解决方案来实施此政策?

1 个答案:

答案 0 :(得分:2)

如果您查看用户定义,可以找到密码字段:

'password': fields.char('Password', size=64, invisible=True, copy=False, help="Keep empty if you don't want the user to be able to connect on the system."),

为了实现您想要的行为,请为密码字段创建一个'onchange'方法,如下所示:

@api.onchange('password') def check_password(self):

您执行必要的验证。

要查看任何结果,您可以创建一个名为“passwordOK”的新字段,默认为true。如果在检查密码不正确后,您可以将其设置为false,这样您就可以控制在视图中显示错误消息。

要控制消息的显示,您可以尝试将其添加到视图中:

attrs="{'invisible': [('passwordOK', '=', True)]}"

编辑: 我会告诉你我是如何在视图中做到的。这可能不是最好的解决方案,但效果很好。

我使用了一个消息字符串,而不是布尔变量,如下所示:

'message': fields.text('Message'),

此变量将包含您的警告消息(示例:“密码必须是字母数字”)。在使用@ api.onchange修饰的方法中,在验证密码安全性时为此属性赋值。 为了显示消息,该字段应如下所示:

<field name="message" readonly="True" style="color:red" attrs="{'invisible': [('message', '=', '')]}"/>

正如您所看到的,它仅在非空时显示(也会以红色显示)。在 onchange 方法中修改字段值时,Odoo会自动更新字段值。