在我们的应用程序中,我们有普通用户。但是,我们希望能够发出邀请,邀请某些人。请注意,邀请直接耦合到用户,因为我们希望已经能够为这些用户设置某些设置。(我们正在将客户从旧软件减少到新软件)。
所以:
invitation_token
,他们应该看到一个表单,可以在其中设置其帐户的密码。我遇到的麻烦是如何使管理员能够绕过常规密码验证来创建用户帐户。如果需要设置默认密码,那将是一个可怕的解决方案,因为这将造成严重的安全漏洞。
如何在Devise中创建新用户而不提供密码?
至少有两种方法可以执行所需的操作:
方法1:
重载设计password_required?
方法
class User < ActiveRecord::Base
attr_accessor :skip_password_validation # virtual attribute to skip password validation while saving
protected
def password_required?
return false if skip_password_validation
super
end
end
用法:
@user.skip_password_validation = true
@user.save
方法2:
使用以下validate: false
选项禁用验证:
user.save(validate: false)
这将跳过所有字段的验证(不仅限于密码)。在这种情况下,您应确保所有其他字段均有效。
...
但我建议您在特定情况下不要创建没有密码的用户。我将创建一些其他表(例如invitations
),并存储所有必需的信息,包括您希望在确认后分配给用户的字段。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句