get('/', 'Home::index'); // Auth Routes (public, not protected) // NOTE: Throttle filter DISABLED untuk login - rate limiting di-handle di controller berdasarkan failed attempts $routes->group('auth', function($routes) { $routes->get('login', 'AuthController::login'); $routes->post('login', 'AuthController::login'); // No throttle filter - handled in controller $routes->get('logout', 'AuthController::logout'); }); // Admin Routes (protected by auth filter) $routes->group('admin', ['filter' => 'auth'], function($routes) { $routes->get('/', 'Admin\Dashboard::index'); $routes->get('dashboard', 'Admin\Dashboard::index'); // News Routes $routes->group('news', function($routes) { $routes->get('/', 'Admin\News::index'); $routes->get('create', 'Admin\News::create'); $routes->post('store', 'Admin\News::store'); $routes->get('edit/(:num)', 'Admin\News::edit/$1'); $routes->post('update/(:num)', 'Admin\News::update/$1'); $routes->post('delete/(:num)', 'Admin\News::delete/$1'); }); // Pages Routes $routes->group('pages', function($routes) { $routes->get('/', 'Admin\Pages::index'); $routes->get('create', 'Admin\Pages::create'); $routes->post('store', 'Admin\Pages::store'); $routes->get('edit/(:num)', 'Admin\Pages::edit/$1'); $routes->post('update/(:num)', 'Admin\Pages::update/$1'); $routes->post('autosave/(:num)', 'Admin\Pages::autosave/$1'); $routes->post('delete/(:num)', 'Admin\Pages::delete/$1'); }); // Upload route $routes->post('upload', 'Admin\Pages::upload', ['filter' => 'auth']); // Users Routes (admin only) $routes->group('users', ['filter' => 'auth:admin'], function($routes) { $routes->get('/', 'Admin\Users::index'); $routes->get('create', 'Admin\Users::create'); $routes->post('store', 'Admin\Users::store'); $routes->get('edit/(:num)', 'Admin\Users::edit/$1'); $routes->post('update/(:num)', 'Admin\Users::update/$1'); $routes->post('reset-password/(:num)', 'Admin\Users::resetPassword/$1'); $routes->post('toggle-active/(:num)', 'Admin\Users::toggleActive/$1'); $routes->post('delete/(:num)', 'Admin\Users::delete/$1'); }); // Audit Logs Routes (admin only) $routes->group('audit-logs', ['filter' => 'auth:admin'], function($routes) { $routes->get('/', 'Admin\AuditLogs::index'); }); // Profile Routes $routes->get('profile', 'Admin\Profile::index'); $routes->post('profile/update', 'Admin\Profile::update'); // Settings Routes (admin only) $routes->group('settings', ['filter' => 'auth:admin'], function($routes) { $routes->get('/', 'Admin\Settings::index'); $routes->post('update', 'Admin\Settings::update'); }); });