【发布时间】:2012-02-15 23:27:33
【问题描述】:
我有一个 crud 表单,因此管理员可以编辑用户。如有必要,管理员需要能够更改密码。我正在使用:
crud.update(db.auth_user, user_id, deletable=False)
创建表单,如果我输入密码,它就可以正常工作。但是如果我不想更改密码,它会重置密码并且用户无法登录。看起来密码字段正在使用加密版本更新并导致它重置。如何防止这种情况发生?
【问题讨论】:
标签: web2py
我有一个 crud 表单,因此管理员可以编辑用户。如有必要,管理员需要能够更改密码。我正在使用:
crud.update(db.auth_user, user_id, deletable=False)
创建表单,如果我输入密码,它就可以正常工作。但是如果我不想更改密码,它会重置密码并且用户无法登录。看起来密码字段正在使用加密版本更新并导致它重置。如何防止这种情况发生?
【问题讨论】:
标签: web2py
如果变量为空或无效,您能否从 form.vars 中删除该变量?由于 web2py 集成了如此多的身份验证内容,因此我从未真正搞砸过密码字段的内容,但这可能会奏效。
您可以使用crud.update(..., onvalidation=somefunction) 并通过一些功能检查密码字段中的有效值,如果找不到,del form.vars.password?或者将 form.vars.password 设置为 None ?
onvalidation 将在表单被接受(验证)之后但在数据库中输入/更新值之前发生。
【讨论】: