74 lines
2.9 KiB
PHP
74 lines
2.9 KiB
PHP
|
|
<?php
|
||
|
|
|
||
|
|
use CodeIgniter\Router\RouteCollection;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* @var RouteCollection $routes
|
||
|
|
*/
|
||
|
|
$routes->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');
|
||
|
|
});
|
||
|
|
});
|