内容简介:我有一个使用Devise进行身份验证的Rails应用程序.用户属于经销商,我希望阻止属于残障经销商的用户能够登录.是否有一种直接的方式来扩展Devise的身份验证查找器,以便它不包括已删除的经销商的用户?也许在User上使用命名范围?干杯
我有一个使用Devise进行身份验证的Rails应用程序.用户属于经销商,我希望阻止属于残障经销商的用户能够登录.
是否有一种直接的方式来扩展Devise的身份验证查找器,以便它不包括已删除的经销商的用户?也许在User上使用命名范围?
干杯
特里斯坦
事实证明我需要做的就是覆盖我的用户模型的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
>通过调用super以正常方式查找用户.
>我正在使用STI,所以我检查用户是DealershipUser,然后检查经销商是否被删除(acts_as_paranoid).
>返回用户.
这是我的方案的一个非常具体的解决方案,但您可以覆盖find_for_authentication,但是如果您愿意,之后您将返回用户.
翻译自:https://stackoverflow.com/questions/4141094/filtering-users-who-are-able-to-sign-in-with-devise
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 能够自动感知背景主色调的按钮
- 如何能够保证自己应用数据的安全?|四月汇报
- IT厂商为什么能够成为优秀的存储厂商
- 8个能够提高Django开发效率的Python包
- 威胁情报的上下文、标示及能够执行的建议
- 商界领袖能够从贝索斯短信泄漏事件中学到什么?
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Effective C++
[美]Scott Meyers / 侯捷 / 电子工业出版社 / 2006-7 / 58.00元
《Effective C++:改善程序与设计的55个具体做法》(中文版)(第3版)一共组织55个准则,每一条准则描述一个编写出更好的C++的方式。每一个条款的背后都有具体范例支撑。第三版有一半以上的篇幅是崭新内容,包括讨论资源管理和模板(templates)运用的两个新章。为反映出现代设计考虑,对第二版论题做了广泛的修订,包括异常(exceptions)、设计模式(design patterns)......一起来看看 《Effective C++》 这本书的介绍吧!