2016-03-23 9 views
0

管理パネルを認証しようとしています。ユーザー管理者でない場合はRails Devise:Sign Inカスタマイズ

は、サインイン要求をキャンセルします。デフォルトで

、電子メール/パスワードが間違っている場合。これは、現在、それは私が何をしたかにかかわらずに署名し/users/sign_in

def create 
    super do |user| 
     if user.role >= 30 
     res 
     else 
     #Do not create sessions, authenticate 
     flash[:notice] = "You do not have permission" 
     redirect_to :back 
     end 
    end 
    end 

をレンダリングします。

どのようにカスタマイズできますか?

ありがとうございます。

答えて

0

さてさて、このように私のために働きました。

可能であれば、より簡単で簡単な解決策を見たいと思っています。

def create 
    user = User.find_by_email(params[:user][:email]) 
    if user.role >= 30 
    super 
    else 
    render 'users/sessions/new' 
    end 
end 
0

標準的な方法は、メソッドを定義することになります

def if_user_admin 
    return user.role < 30 
end 

とあなたのコントローラでこれを追加すると言う:

before_action :if_user_admin 
+0

そのスーパーは私にとにかくセッションを作成するので、私を助けません。 – 7urkm3n