知っておいていただきたいこと – 12
- 2022年7月22日
- 技術情報
今日もlaravelのTipsをいくつか共有したいと思います。
アプリケーションを作成する際、他のユーザーがアクセスできない管理者ロールを用意することがほとんどでしょう。別のコントロールを繰り返し追加する代わりに、 ルートやコントローラに適用できるミドルウェアを作成することを検討しましょう。これは、absort ヘルパーや absort_unless ヘルパーを使えば簡単に実現できます。
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\Auth;
class CheckUserIsAdmin{
public function handle(Request $request, Closure $next){
abort_unless(Auth::user()?->isAdmin(), Request::HTTP_FORBIDDEN);
return $next($request);
}
}
そして、そのミドルウェアをルートHTTPカーネルに追加する。
namespace App\Http;
use Illuminate\Foundation\Http\Kernel as HttpKernel;
class Kernel extends HttpKernel{
protected $routeMiddleware = [
'admin' => \App\Http\Middleware\CheckUserIsAdmin::class;
];
}
最後に、ミドルウェアを適用する
use App\Http\Middleware\AdminUserController;
use App\Http\Middleware\AdminDashboardController;
Route::prefix('admin')->middleware('admin')->group(function(){
Route::get('/',[AdminDashboardController::class, 'index']);
Route::get('/users',[AdminUserController::class, 'index']);
});
ということで、今回はこれで終わります。
金曜担当 – Ami
asahi at 2022年07月22日 10:00:00