登录前验证用户是否获得管理员的批准

时间:2018-12-27 15:43:49

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4 rubygems

您好,我已按照教程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

谢谢

1 个答案:

答案 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