ruby-on-rails - 设计 - 验证时设置范围

标签 ruby-on-rails ruby authentication devise

我正在使用 devise用于身份验证。如何设置登录范围?例如,假设我只想对范围内的用户进行身份验证:

User.where(:active => true)

我说清楚了吗?这很简单,但如果需要,我可以详细说明。

(我知道有一个可锁定的模块,但我的实际范围不是针对活跃用户的,它更像是 current_site.users,其中 current_site 是基于域的)

最佳答案

只需在您的User 模型中重写这两个方法来检查事件标志是否为true:

# Called by Devise to see if an user can currently be signed in
def active_for_authentication?
  active? && super
end

# Called by Devise to get the proper error message when an user cannot be signed in
def inactive_message
  !active? ? :deactivated : super
end

然后在您的 devise.en.yml 中添加正确的错误消息:

devise:
  failure:
    deactivated: "Luke, I'm your father and your account was locked!"

关于ruby-on-rails - 设计 - 验证时设置范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5320200/

相关文章:

使用 NTAG 424 DNA TT 的身份验证提示

c# - 如何使用 Windows 登录凭据使用 C# 进行代理身份验证

ruby - 如何将方法或 lambda 转换为非 lambda proc

ruby-on-rails - Rails 中的模型类型和排序?

ruby-on-rails - Rails - 每当 gem - 动态值

css - Rails Assets 未预编译,css 在生产环境中看起来不同

ruby-on-rails - 如何在 Rails 主机上轻松运行 sinatra/padrino 应用程序

ruby - 如何删除 Ruby 文件的最后一行?

ios - 如何使用 ios sdk 在没有权限对话框的情况下登录 facebook?

ruby-on-rails - 在 CanCan 中使用 block 定义能力会引发异常