忘れないように記録しとこ

カバの樹

laravel-permissionを使って特定ロールだけを指定URLにアクセスできないようにする

はじめに

Laravelで作ったWEBアプリケーションで特定の権限を持つユーザーだけが、アクセスできないページを作って欲しいと依頼がありました。

色々やり方はありそうですが、今回は「laravel-permission」を使って実装します。

 

laravel-permission」の基本的な使い方は以下の記事を参考にしてください。

https://www.kabanoki.net/2836/

 

環境

Laravel:5.5
PHP:7.0
laravel-permission:

 

特定のロールだけアクセスできないようにする

特定のロールを持っているユーザーが指定のURLにアクセスできないようにするには、Laravel許可を使用します。

 

今回は、writerロールのユーザーだけがアクセスできないURLをサンプルにしました。

 

app\Providers\AuthServiceProvider.php

    public function boot()
    {
        $this->registerPolicies();

        // clientロールだけをアクセス不可にする
        Gate::define('rejectWriterRole', function ($user) {
            return !$user->hasRole('writer');
        });
    }

routes\web.php

    Route::middleware(['can:rejectClientRole'])->group(function () {
        Route::get('foo/bar', 'FooController@bar');
    });

 

まとめ

今回はロールでの制限を作りましたが、もちろんパーミッションでの制限も可能です。

色々試してみてください。

 

今日はこの辺でー

 

  • B!