2011-09-10 15 views
0

ユーザーログイン後の私のWebアプリケーションでは、新しいセッションが作成され、ブラウザを閉じるまで彼はログインしたままです。管理者がブラウザがまだ開いているユーザーを禁止したいときに問題が表示されます。ユーザーは禁止され、もうログインできなくても、ブラウザを閉じたり手動でログアウトしたりするまで、ログインしたままになります。これは間違いなく修正する必要があります。RORユーザー認証

すべてのコントローラのすべての動作に検証方法を追加できますか?もちろん、私はスマートな方法 - 100回コピー/ペーストを意味しません。

答えて

3

は、アプリケーションのコントローラに以下を追加します。

before_filter :sign_out_banned_user 

def sign_out_banned_user 
    if current_user.banned? 
    session[:current_user_id] = nil 
    redirect_to root_path, :notice => "You are banned" 
    return false 
    end 
end 
+0

あなたはfalseを返す理由を説明できますか? – NARKOZ

+1

あなたは 'return false'を削除しようとするかもしれません。 'return false'がなければ、' redirect_to'の後にコードは続行され、アクションに入ります。そして、アクションに入るので、 'redirect_to'が重複しています。 – PeterWong

1

はまた、私が思うのセッションをリセットする必要があります。

+0

私はセッションをリセットするための行を追加しました:) – PeterWong