我想在帐户创建日期为2010年的情况下禁用用户授权。
如何使用回调执行此任务以及如何将其与Devise一起使用?
答案 0 :(得分:0)
你在Devise中使用lockable
策略吗?
如果是这样,在登录后重定向到的控制器中,你可以添加一个执行如下操作的before_filter:
current_user.lock_access! if current_user && current_user.created_at.year == "2010"
您还需要手动签署用户,可能是这样的:
sign_out current_user
答案 1 :(得分:0)
我认为你的问题有两部分:
根据某些条件(例如帐户创建日期),您要授权用户执行某些操作
您想使用Devise进行身份验证
请注意,身份验证(您说的是您)和授权(您可以执行所请求的操作)之间存在差异,并且通常使用不同的软件实现。
例如,您可以使用Devise进行身份验证,使用CanCan来管理授权(CanCan上的railscast:http://asciicasts.com/episodes/192-authorization-with-cancan)。
使用CanCan,您只需允许用户根据其帐户的created_at
属性执行操作,否则请调用Devise的authorize!
方法。