gpt4 book ai didi

ruby-on-rails - Rails + Devise-有什么方法可以禁止用户登录,以便他们无法登录或重置密码?

转载 作者:行者123 更新时间:2023-12-03 08:08:35 25 4
gpt4 key购买 nike

由于设计,我有很多用户,我想禁止一些问题制造者。 Devise是否内置了此支持?

谢谢

最佳答案

我只是在自己的项目中实现了这一点。我所做的与上面的Kleber类似,我在我的app / controllers / sessions_controller.rb(覆盖设计)中定义了这一点...

class SessionsController < Devise::SessionsController

protected

def after_sign_in_path_for(resource)
if resource.is_a?(User) && resource.banned?
sign_out resource
flash[:error] = "This account has been suspended for violation of...."
root_path
else
super
end
end

end

然后,我向“用户”添加了一个 bool(boolean) 列,称为“禁止的”,这样,主持人在后端编辑用户时便选中了该复选框, bool(boolean) 值将返回true。

但是存在一个缺陷...如果用户已经登录然后被禁止,则至少在 session 期满或注销之前,他们仍然有权访问网站上的内容(评论等)。所以我在app / controllers / application_controller.rb中做到了...
class ApplicationController < ActionController::Base
before_filter :banned?

def banned?
if current_user.present? && current_user.banned?
sign_out current_user
flash[:error] = "This account has been suspended...."
root_path
end
end
end

如果检测到禁令,则会自动将其注销。无论如何,不​​确定当我刚接触Rails时,整个事情是否是“整体”因素的“最佳”方法,但是整个事情对我有用,并希望至少会给您一个良好的开端。

关于ruby-on-rails - Rails + Devise-有什么方法可以禁止用户登录,以便他们无法登录或重置密码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5629480/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com