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