Files
cms-gov/app/Config/Routes.php

74 lines
2.9 KiB
PHP
Raw Permalink Normal View History

<?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');
});
});