後へ      Topへ      次へ

Pundit: ユーザー認可 (インストール)

Cancancan をリバート

前章で Cancancan によるユーザー認可を実装しました。
設定ファイルを1か所に集めて簡潔に設定ができて便利です。
一方で、
対象はモデル単位なので、
「対象データの*カラムが++の時は認可しない」といった、
細かな設定には向いていません。

例えば、自分自身の enabled フラグは変更できない、みたいな。
自分自身を無効化してしまったら、ログインできなくなりますから。

そこで、本章では、一旦 Cancancan を辞めて、
別の認可ライブラリである Pundit を使ってみます。

参考リポジトリ https://github.com/Bonv-dev/book_mgmt/commit/449c218
で書いた通り、
Cancancan の変更を全部リバートして、無かったことにしています。

ちなみに、
リバートの際、flash.css も消してしまったので、後で戻してます。
参考リポジトリ: https://github.com/Bonv-dev/book_mgmt/commit/cd827e5
(関係ないものを1コミットで入れるのはダメですね。。。)

Pundit インストール

  1. bundle add pundit
  2. rails g pundit:install
  3. 認可対象毎に
    ruby bin/rails generate pundit:policy (対象)
    を実行。
    e.g.
    ruby bin/rails generate pundit:policy book

実際の認可設定の中身は次章にて。


後へ      Topへ      次へ