Route Laravel dengan Role Hak Akses
Untuk membuat Route Laravel Berdasarkan Role Hak Akses atau hak akses dengan membandingkan id users, kita dapat menggunakan middleware untuk memeriksa peran pengguna sebelum melewati ke rute. Berikut adalah langkah-langkahnya:
Langkah 1: Buat Middleware
Buat middleware dengan menggunakan perintah Artisan Laravel:
php artisan make:middleware CheckRole
Langkah 2: Edit Middleware
Buka file yang baru saja dibuat di app/Http/Middleware/CheckRole.php
dan atur logika untuk memeriksa peran pengguna:
<?php
namespace App\Http\Middleware;
use Closure;
class CheckRole
{
public function handle($request, Closure $next, $role)
{
// Periksa apakah pengguna memiliki peran yang sesuai
if ($request->user() && $request->user()->role == $role) {
return $next($request);
}
// Jika tidak memiliki peran yang sesuai, redirect atau kembalikan respons sesuai kebutuhan
return redirect('/home'); // Gantilah '/home' dengan rute yang sesuai.
}
}
Langkah 3: Daftarkan Middleware
Buka file app/Http/Kernel.php
dan tambahkan middleware ke dalam $routeMiddleware
:
protected $middlewareAliases = [
// ...
'role' => \App\Http\Middleware\CheckRole::class,
];
Langkah 4: Gunakan Middleware di Rute
Sekarang, Anda dapat menggunakan middleware tersebut di definisi rute. Contoh:
Route::middleware(['role:1'])->group(function () {
// Rute untuk peran 1
Route::get('/role-1', function () {
return 'Ini rute untuk peran 1 sebagai Superadmin';
});
});
Route::middleware(['role:2'])->group(function () {
// Rute untuk peran 2
Route::get('/role-2', function () {
return 'Ini rute untuk peran 2 sebagai Asmen Keuangan';
});
});
Di sini, kita menggunakan middleware ‘role’ dan memberikan parameter peran yang diizinkan pada setiap rute. Middleware akan memeriksa apakah pengguna memiliki peran yang sesuai sebelum membiarkan mereka mengakses rute tersebut.
Semoga artikel Route Laravel Berdasarkan Role Hak Akses ini bermanfaat. Baca juga:
- Buat Authentifikasi (Login/Logout) Laravel
- Upload File Laravel dengan Nama Unik
- 419 Unknown Status pada Laravel