JezK
Edit File: web.php
<?php use App\Http\Controllers\Admin\Auth\LoginController; use App\Http\Controllers\Admin\DashboardController; use App\Http\Controllers\Admin\ArticleController; use App\Http\Controllers\Admin\CategoryController; use App\Http\Controllers\Admin\TagController; use App\Http\Controllers\Admin\MediaController; use App\Http\Controllers\Admin\UserController; use App\Http\Controllers\Admin\ProfileController; use App\Http\Controllers\Admin\RegistrationController; use App\Http\Controllers\Admin\SettingController; use Illuminate\Support\Facades\Route; // ── Authentication ── Route::get('/login', [LoginController::class, 'showLoginForm'])->name('login'); Route::post('/login', [LoginController::class, 'login']); Route::post('/logout', [LoginController::class, 'logout'])->name('logout'); // ── Admin Panel (Authenticated) ── Route::middleware(['auth', 'role'])->prefix('admin')->name('admin.')->group(function () { // Dashboard Route::get('/', [DashboardController::class, 'index'])->name('dashboard'); // Media Route::resource('media', MediaController::class)->except(['create', 'edit', 'show', 'update']); // Registrations Route::get('registrations/export', [RegistrationController::class, 'export'])->name('registrations.export'); Route::resource('registrations', RegistrationController::class)->only(['index', 'show', 'destroy']); Route::put('registrations/{registration}/status', [RegistrationController::class, 'updateStatus'])->name('registrations.update-status'); // Settings Route::get('settings', [SettingController::class, 'index'])->name('settings.index'); Route::put('settings', [SettingController::class, 'update'])->name('settings.update'); // Profile Settings Route::get('profile', [ProfileController::class, 'edit'])->name('profile.edit'); Route::post('/profile', [ProfileController::class, 'update'])->name('profile.update'); // Articles Route::get('/articles', [ArticleController::class, 'index'])->name('articles.index'); Route::get('/articles/create', [ArticleController::class, 'create'])->name('articles.create'); Route::post('/articles', [ArticleController::class, 'store'])->name('articles.store'); Route::post('/articles/upload-image', [ArticleController::class, 'uploadImage'])->name('articles.upload-image'); Route::get('/articles/{article}/edit', [ArticleController::class, 'edit'])->name('articles.edit'); Route::put('/articles/{article}', [ArticleController::class, 'update'])->name('articles.update'); Route::delete('/articles/{article}', [ArticleController::class, 'destroy'])->name('articles.destroy'); Route::get('/articles/{article}/preview', [ArticleController::class, 'preview'])->name('articles.preview'); Route::post('/articles/{id}/restore', [ArticleController::class, 'restore'])->name('articles.restore'); Route::delete('/articles/{id}/force-delete', [ArticleController::class, 'forceDelete'])->name('articles.force-delete'); // Comments Route::get('/comments', [\App\Http\Controllers\Admin\CommentController::class, 'index'])->name('comments.index'); Route::patch('/comments/{comment}/approve', [\App\Http\Controllers\Admin\CommentController::class, 'approve'])->name('comments.approve'); Route::delete('/comments/{comment}', [\App\Http\Controllers\Admin\CommentController::class, 'destroy'])->name('comments.destroy'); // Categories Route::resource('categories', CategoryController::class)->except(['show']); // Tags Route::resource('tags', TagController::class)->except(['show']); // Galleries Route::resource('gallery-categories', \App\Http\Controllers\Admin\GalleryCategoryController::class)->except(['show']); Route::post('galleries/{gallery}/toggle-featured', [App\Http\Controllers\Admin\GalleryController::class, 'toggleFeatured'])->name('galleries.toggle-featured'); Route::resource('galleries', App\Http\Controllers\Admin\GalleryController::class)->except(['show']); // Media Route::get('/media', [MediaController::class, 'index'])->name('media.index'); Route::post('/media', [MediaController::class, 'store'])->name('media.store'); Route::delete('/media/{medium}', [MediaController::class, 'destroy'])->name('media.destroy'); // About System Route::get('/about', function () { return view('admin.about'); })->name('about'); // Users (Super Admin only) Route::middleware('role:super_admin')->group(function () { Route::resource('users', UserController::class)->except(['show']); }); }); // Redirect root to admin Route::get('/', function () { return redirect()->route('admin.dashboard'); });