如何在用户或员工表单上添加所需的密码策略,数字(0 ... 9),特殊字符(@,*,...),密码大小> 6,大写字母(A ... Z)等
您是否有任何解决方案来实施此政策?
答案 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会自动更新字段值。