[解決済み] Devise Admin Roleの追加【終了しました
2022-02-08 23:43:52
質問事項
devise gemでadminロールを作成する方法と、adminとしてログインしている場合のみアクセス可能で、それ以外の場合は404ページが表示されるページを作成する方法を知りたいのです。
解決方法は?
簡単な方法がありますので、ご紹介します。
deviseのユーザーにbooleanを追加するマイグレーションを作成します。
rails g migration AddsAdminColumnToUsers
def change
add_column :users, :admin, :boolean, default: false, null: false
end
これはモデルにマップバックして
user.admin?
メソッドを使用します。
ページへのアクセスのために、私はメソッドを
ApplicationController
というコントローラの懸念事項。
AuthenticateAdmin
.
というメソッドを作成します。
authenticate_admin!
.
def authenticate_admin!
authenticate_user!
redirect_to :somewhere, status: :forbidden unless current_user.admin?
end
追伸:もし
ApplicationController
であることを確認してください。
protected
メソッド
次に、各コントローラーやアクションに対して、制限をかける必要があります。
before_action :authenticate_admin!, only: [:action] # `only` part if applicable
を送信するようにしたい。
forbidden
をここで紹介します。
理由はこの質問の範囲を超えていますが、基本的には
Not Found
は、何かをする権限がないこととは異なります。
HTTPのステータスコードでは
Unauthenticated
しかし、この場合、我々は認証されており、その人はページへのアクセスを禁じられているだけです(つまり、認証されていない)。
この場合、HTTP ステータス 403 Forbidden が要求されます。
関連
-
[解決済み】bcrypt LoadError: Cannot load such file
-
[解決済み】Webpacker::Manifest::MissingEntryError【クローズド
-
[解決済み】OS X Yosemite 10.10.5 で [Ruby on Rails] 5 をインストールすると extconf が失敗して終了コード 1 エラーになる。
-
[解決済み] Rubyの文字列から日付への変換
-
[解決済み] AWS S3です。アクセスしようとしているバケットは、指定されたエンドポイントを使用してアドレスされている必要があります。
-
[解決済み] ウェブパッカーがアプリケーションを見つけ出せない
-
[解決済み] Rubyで変数をインクリメントする [重複]。
-
[解決済み] railsアプリケーションでCookieのオーバーフロー?
-
[解決済み] Rspec が私のモデルクラスを認識しない。初期化されていない定数エラー
-
[解決済み] RSpecとCucumberの違いは何ですか?[クローズド]
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】TypeError: SymbolからIntegerへの暗黙の変換がない。
-
[解決済み】ActionController::InvalidAuthenticityTokenについて
-
[解決済み】OS X Yosemite 10.10.5 で [Ruby on Rails] 5 をインストールすると extconf が失敗して終了コード 1 エラーになる。
-
[解決済み] nil:NilClass の未定義メソッド `each'... なぜでしょうか?
-
[解決済み] Railsでpng画像を文字列形式で表示するには?
-
[解決済み] 検索 vs 発見する by vs どこに
-
[解決済み] railsアプリケーションでCookieのオーバーフロー?
-
[解決済み] RVMでRubyのデフォルトバージョンを設定するには?
-
[解決済み] 構文エラー "構文エラー、予期しない入力終了、keyword_endを期待 (SyntaxError)"
-
[解決済み] Railsでグループとカウント