feat: implement routes for panel admin

This commit is contained in:
2026-08-18 17:59:03 -07:00
parent c80c9c5e2b
commit ebec702aff
3 changed files with 46 additions and 74 deletions
+18 -2
View File
@@ -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 {
//
+9
View File
@@ -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',
+19 -72
View File
@@ -1,85 +1,32 @@
<?php
use App\Http\Controllers\Admin\AuthController;
use App\Http\Controllers\Admin\DashboardController;
use Illuminate\Support\Facades\Route;
Route::prefix('admin')->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');
});
});