From ebec702aff09eb7ebbc7a259a99769f2078ece0a Mon Sep 17 00:00:00 2001 From: Admin Date: Tue, 18 Aug 2026 17:59:03 -0700 Subject: [PATCH] feat: implement routes for panel admin --- bootstrap/app.php | 20 +++++++++-- config/auth.php | 9 +++++ routes/admin.php | 91 ++++++++++------------------------------------- 3 files changed, 46 insertions(+), 74 deletions(-) diff --git a/bootstrap/app.php b/bootstrap/app.php index 30b98a8..7584758 100644 --- a/bootstrap/app.php +++ b/bootstrap/app.php @@ -10,13 +10,29 @@ return Application::configure(basePath: dirname(__DIR__)) web: [ __DIR__ . '/../routes/web.php', __DIR__ . '/../routes/auth.php', + __DIR__ . '/../routes/admin.php', + ], - commands: __DIR__.'/../routes/console.php', + commands: __DIR__ . '/../routes/console.php', health: '/up', ) ->withMiddleware(function (Middleware $middleware): void { $middleware - ->redirectGuestsTo(fn(Request $request)=> route('auth.login.index')); + ->redirectGuestsTo(function (Request $request) { + if ($request->routeIs('admin.*')) { + return route('admin.auth.login.index'); + } + + return route('auth.login.index'); + }) + ->redirectUsersTo(function (Request $request) { + if ($request->routeIs('admin.*')) { + return route(name: 'admin.dashboard.index'); + } + + + return route(name: 'index'); + }); }) ->withExceptions(function (Exceptions $exceptions): void { // diff --git a/config/auth.php b/config/auth.php index 7451364..2cd5c25 100644 --- a/config/auth.php +++ b/config/auth.php @@ -42,6 +42,10 @@ return [ 'driver' => 'session', 'provider' => 'users', ], + 'admin' => [ + 'driver' => 'session', + 'provider' => 'admins', + ], ], /* @@ -67,6 +71,11 @@ return [ 'model' =>User::class ], + 'admins' => [ + 'driver' => 'eloquent', + 'model' => App\Models\Admin::class + ], + // 'users' => [ // 'driver' => 'database', // 'table' => 'users', diff --git a/routes/admin.php b/routes/admin.php index ec00c6f..79e96d9 100644 --- a/routes/admin.php +++ b/routes/admin.php @@ -1,85 +1,32 @@ name('admin.')->group(function () { - Route::get('/', fn () => redirect()->route('admin.dashboard.index'))->name('index'); - Route::prefix('auth')->name('auth.')->group(function () { - Route::middleware('guest:admin')->prefix('login')->name('login.')->group(function () { - Route::get('/', 'App\\Http\\Controllers\\Admin\\AuthController@login')->name('index'); - Route::post('/', 'App\\Http\\Controllers\\Admin\\AuthController@loginPost')->name('post'); + Route::get('/', function () { + return redirect()->route('admin.dashboard.index'); + })->name('index'); + + Route::prefix('auth')->name('auth.')->controller(AuthController::class)->group(function () { + + Route::prefix('login')->name('login.')->middleware('guest:admin')->group(function () { + + Route::get('/', 'login')->name('index'); + Route::post('/', 'loginPost')->name('post'); + }); - Route::get('logout', 'App\\Http\\Controllers\\Admin\\AuthController@logout')->middleware('auth:admin')->name('logout'); + + Route::get('logout', 'logout')->middleware('auth:admin')->name('logout'); + }); Route::middleware('auth:admin')->group(function () { - Route::get('dashboard', 'App\\Http\\Controllers\\Admin\\DashboardController@index')->name('dashboard.index'); - Route::prefix('users')->name('users.')->controller('App\\Http\\Controllers\\Admin\\UserController')->group(function () { - Route::get('/', 'index')->name('index'); - Route::get('{user}/show', 'show')->name('show'); - Route::get('{user}/edit', 'edit')->name('edit'); - Route::put('{user}/update', 'update')->name('update'); - Route::delete('{user}/destroy', 'destroy')->name('destroy'); - }); - - Route::prefix('admins')->name('admins.')->controller('App\\Http\\Controllers\\Admin\\AdminController')->group(function () { - Route::get('/', 'index')->name('index'); - Route::get('create', 'create')->name('create'); - Route::post('store', 'store')->name('store'); - Route::get('{admin}/edit', 'edit')->name('edit'); - Route::put('{admin}/update', 'update')->name('update'); - Route::delete('{admin}/destroy', 'destroy')->name('destroy'); - }); - - Route::prefix('flights')->name('flights.')->controller('App\\Http\\Controllers\\Admin\\FlightController')->group(function () { - Route::get('/', 'index')->name('index'); - Route::get('create', 'create')->name('create'); - Route::post('store', 'store')->name('store'); - Route::get('{flight}/show', 'show')->name('show'); - Route::get('{flight}/edit', 'edit')->name('edit'); - Route::put('{flight}/update', 'update')->name('update'); - Route::delete('{flight}/destroy', 'destroy')->name('destroy'); - }); - - Route::prefix('tours')->name('tours.')->controller('App\\Http\\Controllers\\Admin\\TourController')->group(function () { - Route::get('/', 'index')->name('index'); - Route::get('create', 'create')->name('create'); - Route::post('store', 'store')->name('store'); - Route::get('{tour}/show', 'show')->name('show'); - Route::get('{tour}/edit', 'edit')->name('edit'); - Route::put('{tour}/update', 'update')->name('update'); - Route::delete('{tour}/destroy', 'destroy')->name('destroy'); - }); - - Route::post('tours/{tour}/dates', 'App\\Http\\Controllers\\Admin\\TourDateController@store')->name('tour-dates.store'); - Route::delete('tour-dates/{tourDate}', 'App\\Http\\Controllers\\Admin\\TourDateController@destroy')->name('tour-dates.destroy'); - - Route::prefix('bookings')->name('bookings.')->controller('App\\Http\\Controllers\\Admin\\BookingController')->group(function () { - Route::get('/', 'index')->name('index'); - Route::get('{booking}/show', 'show')->name('show'); - Route::patch('{booking}/update', 'update')->name('update'); - }); - - Route::prefix('provinces')->name('provinces.')->controller('App\\Http\\Controllers\\Admin\\ProvinceController')->group(function () { - Route::get('/', 'index')->name('index'); - Route::get('create', 'create')->name('create'); - Route::post('store', 'store')->name('store'); - Route::get('{province}/edit', 'edit')->name('edit'); - Route::put('{province}/update', 'update')->name('update'); - Route::delete('{province}/destroy', 'destroy')->name('destroy'); - }); - - Route::prefix('cities')->name('cities.')->controller('App\\Http\\Controllers\\Admin\\CityController')->group(function () { - Route::get('/', 'index')->name('index'); - Route::get('create', 'create')->name('create'); - Route::post('store', 'store')->name('store'); - Route::get('{city}/edit', 'edit')->name('edit'); - Route::put('{city}/update', 'update')->name('update'); - Route::delete('{city}/destroy', 'destroy')->name('destroy'); - }); - - Route::get('activity-logs', 'App\\Http\\Controllers\\Admin\\ActivityLogController@index')->name('activity-logs.index'); + Route::get('dashboard', [DashboardController::class, 'index'])->name('dashboard.index'); }); + });