在登录前设计执行方法

时间:2013-03-13 15:16:41

标签: ruby-on-rails ruby-on-rails-3 devise

我想限制登录被禁用户。我的每个用户都有一个denied:integer, :default => 0字段,说明是否允许用户登录。

如果denied == 1,则拒绝用户登录。

然而,由于我无法看到Devise控制器/模型,我不知道如何解决这个问题,是否有一个before_login / before_auth过滤器,我可以在执行登录过程之前使用我自己的方法?

1 个答案:

答案 0 :(得分:2)

这实际上非常简单,只需将以下内容添加到您的用户模型中即可。

def active_for_authentication?
  super && !self.denied 
end

并使用布尔值作为拒绝标志而不是整数,它将列设置为tinyint,它有点整洁并允许布尔样式!检查。如果你确实需要一个int,那么只需与super && self.denied != 1

进行比较

Rubydoc info