目次
はじめに
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'); });
まとめ
今回はロールでの制限を作りましたが、もちろんパーミッションでの制限も可能です。
色々試してみてください。
今日はこの辺でー