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

How add more security policies to a password in ODOO(OpenERP)

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

你有什么解决方案来实施这个政策吗?

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

'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'),

此变量将包含您的警告消息(示例:"Password must be alphanumeric")。在验证密码安全性时,在用@api.onchange 修饰的方法中为该属性赋值。 为了显示消息,该字段应如下所示:

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

如您所见,只有非空时才会显示(而且会显示为红色)。当您在 onchange 方法中修改字段值时,Odoo 将自动更新字段值。