我想限制登录被禁用户。我的每个用户都有一个denied:integer, :default => 0
字段,说明是否允许用户登录。
如果denied == 1
,则拒绝用户登录。
然而,由于我无法看到Devise控制器/模型,我不知道如何解决这个问题,是否有一个before_login / before_auth过滤器,我可以在执行登录过程之前使用我自己的方法?
答案 0 :(得分:2)
这实际上非常简单,只需将以下内容添加到您的用户模型中即可。
def active_for_authentication?
super && !self.denied
end
并使用布尔值作为拒绝标志而不是整数,它将列设置为tinyint,它有点整洁并允许布尔样式!检查。如果你确实需要一个int,那么只需与super && self.denied != 1