2011-06-20 17 views
1

私はDevise :: RegistrationsControllerから継承するコントローラを持っています。私はコントローラにショーアクションを追加しました。 authenticate_userされていないのはなぜDevise :: RegistrationsController#show

before_filter :authenticate_user!, :except => [:new, :create]

:問題は、ユーザーがログアウトした場合でも、彼らは私が持っている私のコントローラの上部にあるにもかかわらず、このアクションにアクセスできるということです!私のショーアクションへのアクセスを禁止しますか?

答えて

0

私は自分のアプリケーションの一つでこれをテストしました。フィルターauthentication_person! (それは私の場合は人です)他のすべてのコントローラでうまく動作しますが、Devise :: RegistrationsControllerから継承されたコントローラでは動作しません。これは、虚偽の問題または制限である可能性があります。 githubでディスカッションディスカッションに追加する必要があります。

もう1つの回避策は、フィルタメソッドshould_be_logged_inを作成することです。アプリケーションコントローラに入力し、次にperson_signed_inをチェックしますか?それに応じてヘルパーとリダイレクトを行います。

0

はあなたに以下を追加し 試みは、コントローラ..認証範囲と問題になる可能性があります:

prepend_before_filter :authenticate_scope!, :only => [:edit, :update, :destroy, :show] 
+0

いいえいいえ。まだショーアクションにアクセスすることができます。 –

+0

は、authenticate_userをオーバーロードします。関数を呼び出してLoggerを呼び出し、その関数が起動しているかどうかを確認します。 – colinross

関連する問題