Menambahkan verifikasi kelas_user

This commit is contained in:
raditya09 2023-07-25 10:12:44 +07:00
parent f4a236c3ad
commit f653955d31
3 changed files with 65 additions and 7 deletions

View File

@ -63,5 +63,6 @@ class Kernel extends HttpKernel
'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
'class' => \App\Http\Middleware\CheckUserClass::class,
];
}

View File

@ -0,0 +1,46 @@
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Support\Facades\Auth;
use Illuminate\Http\Request;
class CheckUserClass
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse) $next
* @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse
*/
public function handle($request, Closure $next, ...$classes)
{
$user = Auth::user();
if (!$user) {
// Jika pengguna belum masuk, arahkan ke halaman login (atau halaman yang sesuai).
return redirect('/login');
}
// Periksa kelas pengguna dengan kelas yang diberikan dalam parameter middleware.
foreach ($classes as $class) {
if ($user->kelas_user == $class) {
// Jika kelas pengguna cocok dengan kelas yang diberikan, lanjutkan ke permintaan berikutnya.
return $next($request);
}
}
// Jika kelas pengguna tidak cocok dengan kelas yang diberikan, arahkan ke halaman yang sesuai.
if (in_array($user->kelas_user, [1, 2])) {
return redirect('/admin');
} elseif ($user->kelas_user == 3) {
return redirect('/dashboard');
}
// Kelas pengguna tidak cocok dengan kelas yang diberikan dan bukan 1, 2, atau 3,
// sehingga arahkan ke halaman login (atau halaman yang sesuai).
return redirect('/login');
}
}

View File

@ -22,13 +22,24 @@
Route::resource('/', 'HomeController');
});
Route::group(['namespace'=>'Backend'], function()
{
Route::resource('dashboard', 'DashboardController');
});
Route::group(['namespace'=>'AdminBackend'], function()
{
Route::resource('admin', 'AdminDashboardController');
Route::middleware(['class:3'])->group(function () {
// Definisikan rute untuk mahasiswa di sini, misalnya dashboard.
// Route::get('/dashboard', [DashboardController::class, 'index'])->name('dashboard');
Route::group(['namespace'=>'Backend'], function()
{
Route::resource('dashboard', 'DashboardController');
});
});
Route::middleware(['class:1,2'])->group(function () {
// Definisikan rute untuk dosen di sini, misalnya halaman admin.
// Route::get('/admin', [AdminController::class, 'index'])->name('admin');
Route::group(['namespace'=>'AdminBackend'], function()
{
Route::resource('admin', 'AdminDashboardController');
});
});
Auth::routes();