Route Laravel Berdasarkan Role Hak Akses

Posted on

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:

Route Laravel Berdasarkan Role Hak Akses
Contoh role pada table database


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: