如何在 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 将自动更新字段值。
如何在用户或员工表单上添加密码策略,要求数字(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 将自动更新字段值。