2011-04-27 74 views
4

請問我如何以及在哪裏可以在設計中放置額外的認證邏輯?設計認證中的附加邏輯

我在我的用戶表中添加了一個名爲expire_date的自定義列,它是一個日期列。

我想要一個額外的要求,那裏的日期必須不遲於今天的日期,才允許他們進行身份驗證。

請問我可以在哪裏添加這個邏輯?

感謝

回答

1

創建自己的控制器,它從設計繼承:: SessionsController

應用程序/控制器/用戶/sessions_controller.rb

class Users::SessionsController < Devise::SessionsController 
... 
Overwrite the new method 
... 
Change what else you need to change 
... 
end 

添加新路線路線文件,你很好走。

3

或者您可以覆蓋active_for_authentication?方法

def active_for_authentication? 
super && (test your dates here) 
end 

如果它處於非活動狀態,它將生成有關該帳戶未處於活動狀態的Flash消息。如果您想要的內容與「此用戶尚未激活」類似,請在文件config/locales/devise.en.yml中更改:inactive的設置。這主要取自Devise wiki