Ruby on Railsでは、コントローラの特定のメソッドをログインしているユーザや特定の権限を持つユーザに制限する標準的な方法がありますか?シンプルさのために、私はブログを持っていて、誰もが私のコントローラーの "リスト"と "ショー"メソッドにアクセスできるようにしたいと思いますが、ログインしたユーザーが "編集"、 "更新" "作成"と他の方法。ロジックをプログラミングするか、少なくともこれらの関数のそれぞれに関数呼び出しをプログラムしてユーザーのアクセス権をチェックする必要がありますか、それとももっと正式な方法がありますか?Rubyでは、コントローラのメソッドを特定のユーザに制限するにはどうしたらいいですか?
2
A
答えて
4
before_filterを使用できます。
Class blogController
before_filter :authorize, :except => [:list, :show]
def authorize
#Your code to get a logged in user
redirect_to blog_path unless user
end
2
これは、例えばBefore filter
と呼ばれています
PostsController < ApplicationController
before_filter :authenticate_admin!, :only => [:index, :show]
1
あなたの質問のためのいくつかの例についてDevise、特にDevise Wikiをチェックしてください。これは、ログインと認証に役立ちます。 CanCanもチェックしてください。これは承認に役立ちます。
Deviseでは、「インデックス」(リスト)アクションと「表示」アクションに誰もがアクセスできるようにし、ブログ/ポストコントローラの上部にある次の行を使用して他のアクションを制限できます。
before_filter :authenticate_user! :except=>[:index, :show]
関連する問題
- 1. 特定の登録ユーザのログインを制限するにはどうすればいいですか?
- 2. ブートストラップカラムを無制限に拡張するにはどうしたらいいですか(上限制限なし)?
- 3. IPアドレスでALL deviseコントローラへのアクセスを制限するにはどうしたらいいですか?
- 4. 特定のコントローラでRailsセッションストアを無効にするにはどうしたらいいですか?
- 5. エクスプレスアプリで特権をユーザに制限するにはどうすればよいですか?
- 6. OpenTKで無制限のFPSを設定するにはどうしたらいいですか?
- 7. Rubyのメソッド名にはどのような制限がありますか?
- 8. 複数のDatePickerを特定の日に制限するにはどうすればよいですか?
- 9. このループを特定の番号に制限するにはどうすればよいですか?
- 10. すでに限定されたクエリを制限するにはどうすればよいですか?
- 11. OpenFileDialogの特定のディレクトリにユーザを制限する
- 12. 別のコントローラにリダイレクトするにはどうしたらいいですか?
- 13. Googleカスタム検索を特定のURLに制限するにはどうすればよいですか?
- 14. URLを特定のワイヤレスネットワークに制限するにはどうすればよいですか?
- 15. Typescriptオブジェクト:キーを特定の文字列に制限するにはどうすればよいですか?
- 16. RubyのTest :: Unitでメソッドをテストするにはどうしたらいいですか?
- 17. Redshiftの特定の列へのアクセスを制限するにはどうすればよいですか?
- 18. ASP.NET MVCの特定のページへのアクセスを制限するにはどうすればよいですか?
- 19. コントローラのスコーププロパティをカスタムディレクティブに渡すにはどうしたらいいですか?
- 20. MySQLユーザを特定のテーブルに制限する方法
- 21. ドロップダウンリストから選択した値をRubyのコントローラに渡すにはどうすればよいですか?
- 22. doctrineでjoinLeft()の結果を制限するにはどうしたらいいですか?
- 23. Zimbraメールサーバでパスワードの作成を制限するにはどうしたらいいですか?
- 24. mod_perlでHTTP POSTリクエストのサイズを制限するにはどうしたらいいですか?
- 25. リッチテキストボックスを最大数の数字だけに制限するにはどうしたらいいですか? (キャップ)
- 26. Rubyでスクリプトを作成するにはどうしたらいいですか?
- 27. Rubyでメソッド呼び出しを傍受するにはどうしたらいいですか?
- 28. 似たようなルートで特定のコントローラ/アクションにリダイレクトするにはどうすればよいですか?
- 29. 選択されたフォームに特定のオプションを設定するにはどうしたらいいですか?
- 30. これらの制限(ビジネス制限)を適用するにはどうすればよいですか?
場合は、これは、インデックスを見ている人を強制または管理者であることを示すだろう不正 – apneadiving