我有一个使用 Devise 进行身份验证的 Rails 应用程序。用户属于经销商,我想阻止属于残疾经销商的用户能够登录。
有没有直接的方法可以到 扩展设计的身份验证查找器 以便它不包括来自已删除经销商的用户?也许在用户上使用命名范围?
干杯
特里斯坦
最佳答案
原来我需要做的就是覆盖我的用户模型的 find_for_authentication 方法:
class User < ActiveRecord::Base
...
# Intercept Devise to check if DealershipUser's Dealership is active
def self.find_for_authentication(conditions)
user = super
return nil if user.is_a?(DealershipUser) && user.dealership.deleted?
user
end
...
end
对于我的场景,这是一个非常具体的解决方案,但您可以覆盖 find_for_authentication 无论如何您喜欢,前提是您之后返回用户。
关于ruby-on-rails - 过滤能够使用 Devise 登录的用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4141094/