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

はじめに

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

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

 

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

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

 

環境

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');
    });

 

まとめ

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

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

 

今日はこの辺でー

 

  • この記事を書いた人

カバノキ

印刷会社のWEB部隊に所属してます。 WEB制作に携わってから、もう時期10年になります。 普段の業務では、PHPをメインにサーバーサイドの言語を扱っています。 最近のお気に入りはJavascriptです。 Vue.jsを狂喜乱舞しながら、社内に布教中です。

-Laravel
-, ,