gpt4 book ai didi

ruby-on-rails - 设计:创建没有密码的用户

转载 作者:行者123 更新时间:2023-12-03 12:02:17 29 4
gpt4 key购买 nike

在我们的应用程序中,我们有普通用户。但是,我们希望能够发出邀请,邀请某些人。请注意,邀请与用户直接相关,因为我们希望能够为这些用户设置某些设置。 (我们正在将客户从旧软件迁移到新软件)。

所以:

  • 管理员应该能够创建新用户并更改其设置。
  • 当有人点击带有他们 invitation_token 的链接时,他们应该会看到一个表单,可以在其中为自己的帐户设置密码。

  • 我遇到的问题是如何让管理员创建一个用户帐户,绕过正常的密码验证。如果需要设置默认密码,这将是一个可怕的解决方案,因为这会造成严重的安全漏洞。

    如何在不提供密码的情况下在 Devise 中创建新用户?

    最佳答案

    至少有两种方法可以做你想做的事:

    方法一:

    过载设计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

    方法二:

    使用 validate: false 禁用验证选项:
    user.save(validate: false)

    这将跳过所有字段的验证(不仅是密码)。在这种情况下,您应该确保所有其他字段都有效。

    ...

    但我建议您不要在特定情况下创建没有密码的用户。我会创建一些额外的表(例如, invitations )并存储所有必需的信息,包括您要在确认后分配给用户的字段。

    关于ruby-on-rails - 设计:创建没有密码的用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32185562/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com