mcpField
L
laravel-policies-and-authorization

laravel-policies-and-authorization

github.com/noartemセキュリティ1378 回インストール2 週間前に更新
リポジトリ

laravel-policies-and-authorization について

Laravel 開発者向けの認可スキルです。モデル操作には Policy、横断的な判定には Gate を使う方法に加え、ルート保護とテストも扱います。

主な機能

  1. 01モデル操作に Policy を使用
  2. 02横断的な判定に Gate を適用
  3. 03can ミドルウェアでルートを保護
  4. 04認可拒否のテスト

活用シーン

  1. 01モデル Policy の生成と登録
  2. 02リソースコントローラーのルート保護
  3. 03権限のないアクセスへの応答確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/noartem/skills --skill laravel-policies-and-authorization

インストール後、Claude Code で/laravel-policies-and-authorizationを入力して読み込まれたか確認します。

詳細

ポリシーと認可

モデルごとのアクションにはポリシーを、横断的なチェックにはゲートを使用します。

コマンド

# Generate a policy
sail artisan make:policy PostPolicy --model=Post   # or: php artisan make:policy PostPolicy --model=Post

# Apply in routes (resource controllers)
Route::resource('posts', PostController::class);
// In controller constructor
$this->authorizeResource(Post::class, 'post');

# One-off checks
$this->authorize('update', $post);           // in controller
Gate::allows('manage-billing', $user);       // ad-hoc gate

パターン

  • リソースポリシーのメソッドを使用します:viewAny, view, create, update, delete, restore, forceDelete
  • インラインチェックよりポリシーメソッドを優先します。コントローラーをすっきり保てます
  • ポリシーを AuthServiceProvider に登録します
  • ルートを手軽に保護するには can ミドルウェアを使用します:->middleware('can:update,post')
  • テストでは、拒否されるケースに対して actingAs($user)->get(...)->assertForbidden() をアサートします

コメント