您好,我已按照教程How To: Require admin to activate account before sign_in进行操作 在用户可以连接之前验证用户是否已获得管理员的批准。
我想添加条件以测试其是否可以连接
这是我的控制器 session_controller.rb
class SessionsController < Devise::SessionsController
before_action :set_email
def new
super
end
def create
self.resource = warden.authenticate!(auth_options)
set_flash_message(:notice, :signed_in) if is_navigational_format?
sign_in(resource_name, resource)
if !session[:return_to].blank?
redirect_to session[:return_to]
session[:return_to] = nil
else
respond_with resource, :location => after_sign_in_path_for(resource)
end
end
def confirm_email
user = User.find_by_confirm_token(params[:id])
if user
user.email_activate
flash[:success] = "Welcome to the Sample App! Your email has been
confirmed.
Please sign in to continue."
redirect_to signin_url
else
flash[:error] = "Sorry. User does not exist"
redirect_to root_url
end
end
def set_email
@email = params[:email];
@user1 = params[:user];
end
end
谢谢
答案 0 :(得分:0)
def create
self.resource = warden.authenticate!(auth_options)
if current_user.approved?
set_flash_message(:notice, :signed_in) if is_navigational_format?
sign_in(resource_name, resource)
if !session[:return_to].blank?
redirect_to session[:return_to]
session[:return_to] = nil
else
respond_with resource, :location => after_sign_in_path_for(resource)
end
else
sign_out current_user
redirect_to "/"
end
end