mirror of
https://github.com/mivodev/mivo.git
synced 2026-01-26 05:25:42 +07:00
174 lines
9.8 KiB
PHP
174 lines
9.8 KiB
PHP
<?php
|
|
|
|
use App\Controllers\InstallController;
|
|
use App\Controllers\AuthController;
|
|
use App\Controllers\HomeController;
|
|
use App\Controllers\PublicStatusController;
|
|
use App\Controllers\SettingsController;
|
|
use App\Controllers\VoucherTemplateController;
|
|
use App\Controllers\ProfileController;
|
|
use App\Controllers\HotspotController;
|
|
use App\Controllers\GeneratorController;
|
|
use App\Controllers\DashboardController;
|
|
use App\Controllers\TrafficController;
|
|
use App\Controllers\ReportController;
|
|
use App\Controllers\LogController;
|
|
use App\Controllers\SystemController;
|
|
use App\Controllers\SchedulerController;
|
|
use App\Controllers\DhcpController;
|
|
use App\Controllers\QuickPrintController;
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// Public Routes (No Auth Required)
|
|
// -----------------------------------------------------------------------------
|
|
|
|
// Installer
|
|
$router->get('/install', [InstallController::class, 'index']);
|
|
$router->post('/install', [InstallController::class, 'process']);
|
|
|
|
// Authentication
|
|
$router->get('/login', [AuthController::class, 'showLogin']);
|
|
$router->post('/login', [AuthController::class, 'login']);
|
|
$router->get('/logout', [AuthController::class, 'logout']);
|
|
|
|
// Public Status Check (Requires Valid Router Session, but NO Auth)
|
|
$router->group(['middleware' => 'router.valid'], function($router) {
|
|
$router->get('/{session}/status', [PublicStatusController::class, 'index']);
|
|
});
|
|
|
|
// Temporary Test Route
|
|
$router->get('/test-alert', [HomeController::class, 'testAlert']);
|
|
|
|
// Plugin Language Route - DEPRECATED
|
|
// Plugins now handle their own routing via Hooks::addAction('router_init')
|
|
|
|
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// Protected Admin Routes (Requires Auth)
|
|
// -----------------------------------------------------------------------------
|
|
|
|
$router->group(['middleware' => 'auth'], function($router) {
|
|
|
|
// Global Home / Design System
|
|
$router->get('/', [HomeController::class, 'index']);
|
|
$router->get('/design-system', [HomeController::class, 'designSystem']);
|
|
|
|
// Global Settings (Admin Level)
|
|
$router->get('/settings', [SettingsController::class, 'routers']);
|
|
$router->get('/settings/system', [SettingsController::class, 'system']);
|
|
$router->get('/settings/routers', [SettingsController::class, 'routers']);
|
|
$router->get('/settings/add', [SettingsController::class, 'add']);
|
|
$router->post('/settings/store', [SettingsController::class, 'store']);
|
|
$router->get('/settings/edit/{id}', [SettingsController::class, 'edit']);
|
|
$router->post('/settings/update', [SettingsController::class, 'update']);
|
|
$router->post('/settings/delete', [SettingsController::class, 'delete']);
|
|
$router->post('/settings/admin/update', [SettingsController::class, 'updateAdmin']);
|
|
$router->post('/settings/global/update', [SettingsController::class, 'updateGlobal']);
|
|
$router->get('/settings/backup', [SettingsController::class, 'backup']);
|
|
$router->post('/settings/restore', [SettingsController::class, 'restore']);
|
|
|
|
// Voucher Templates
|
|
$router->get('/settings/voucher-templates', [VoucherTemplateController::class, 'index']);
|
|
$router->get('/settings/voucher-templates/preview/{id}', [VoucherTemplateController::class, 'preview']);
|
|
$router->get('/settings/voucher-templates/add', [VoucherTemplateController::class, 'add']);
|
|
$router->post('/settings/voucher-templates/store', [VoucherTemplateController::class, 'store']);
|
|
$router->get('/settings/voucher-templates/edit/{id}', [VoucherTemplateController::class, 'edit']);
|
|
$router->post('/settings/voucher-templates/update', [VoucherTemplateController::class, 'update']);
|
|
$router->post('/settings/voucher-templates/delete', [VoucherTemplateController::class, 'delete']);
|
|
|
|
// Logo Management
|
|
$router->get('/settings/logos', [SettingsController::class, 'logos']);
|
|
$router->post('/settings/logos/upload', [SettingsController::class, 'uploadLogo']);
|
|
$router->post('/settings/logos/delete', [SettingsController::class, 'deleteLogo']);
|
|
|
|
// API CORS Settings
|
|
$router->get('/settings/api-cors', [SettingsController::class, 'apiCors']);
|
|
$router->post('/settings/api-cors/store', [SettingsController::class, 'storeApiCors']);
|
|
$router->post('/settings/api-cors/update', [SettingsController::class, 'updateApiCors']);
|
|
$router->post('/settings/api-cors/delete', [SettingsController::class, 'deleteApiCors']);
|
|
|
|
// Plugins Management
|
|
$router->get('/settings/plugins', [SettingsController::class, 'plugins']);
|
|
$router->post('/settings/plugins/upload', [SettingsController::class, 'uploadPlugin']);
|
|
$router->post('/settings/plugins/delete', [SettingsController::class, 'deletePlugin']);
|
|
|
|
|
|
// -------------------------------------------------------------------------
|
|
// Router Context Routes (Requires Auth AND Valid Router Session)
|
|
// -------------------------------------------------------------------------
|
|
// These routes rely on {session} parameter and middleware checks if it exists.
|
|
|
|
$router->group(['middleware' => 'router.valid'], function($router) {
|
|
|
|
// Dashboard
|
|
$router->get('/{session}/dashboard', [DashboardController::class, 'index']);
|
|
|
|
// Hotspot - Profiles
|
|
$router->get('/{session}/hotspot/profiles', [ProfileController::class, 'index']);
|
|
$router->get('/{session}/hotspot/profile/add', [ProfileController::class, 'add']);
|
|
$router->post('/{session}/hotspot/profile/store', [ProfileController::class, 'store']);
|
|
$router->post('/{session}/hotspot/profile/delete', [ProfileController::class, 'delete']);
|
|
$router->get('/{session}/hotspot/profile/edit/{id}', [ProfileController::class, 'edit']);
|
|
$router->post('/{session}/hotspot/profile/update', [ProfileController::class, 'update']);
|
|
|
|
// Hotspot - Users
|
|
$router->get('/{session}/hotspot/users', [HotspotController::class, 'index']);
|
|
$router->get('/{session}/hotspot/add', [HotspotController::class, 'add']);
|
|
$router->post('/{session}/hotspot/store', [HotspotController::class, 'store']);
|
|
$router->post('/{session}/hotspot/delete', [HotspotController::class, 'delete']);
|
|
$router->get('/{session}/hotspot/user/edit/{id}', [HotspotController::class, 'edit']);
|
|
$router->post('/{session}/hotspot/update', [HotspotController::class, 'update']);
|
|
$router->get('/{session}/hotspot/print-batch', [HotspotController::class, 'printBatchActions']);
|
|
$router->get('/{session}/hotspot/print/([a-zA-Z0-9*]+)', [HotspotController::class, 'printUser']);
|
|
|
|
// Hotspot - Active & Hosts
|
|
$router->get('/{session}/hotspot/active', [HotspotController::class, 'active']);
|
|
$router->post('/{session}/hotspot/active/remove', [HotspotController::class, 'removeActive']);
|
|
$router->get('/{session}/hotspot/hosts', [HotspotController::class, 'hosts']);
|
|
$router->get('/{session}/hotspot/bindings', [HotspotController::class, 'bindings']);
|
|
$router->post('/{session}/hotspot/bindings/store', [HotspotController::class, 'storeBinding']);
|
|
$router->post('/{session}/hotspot/bindings/remove', [HotspotController::class, 'removeBinding']);
|
|
$router->get('/{session}/hotspot/walled-garden', [HotspotController::class, 'walledGarden']);
|
|
$router->post('/{session}/hotspot/walled-garden/store', [HotspotController::class, 'storeWalledGarden']);
|
|
$router->post('/{session}/hotspot/walled-garden/remove', [HotspotController::class, 'removeWalledGarden']);
|
|
|
|
// Hotspot - Generate
|
|
$router->get('/{session}/hotspot/generate', [GeneratorController::class, 'index']);
|
|
$router->post('/{session}/hotspot/generate/process', [GeneratorController::class, 'process']);
|
|
|
|
// Traffic Monitor
|
|
$router->get('/{session}/traffic/monitor', [TrafficController::class, 'monitor']);
|
|
$router->get('/{session}/traffic/interfaces', [TrafficController::class, 'getInterfaces']);
|
|
|
|
// Reports
|
|
$router->get('/{session}/reports/selling', [ReportController::class, 'index']);
|
|
$router->get('/{session}/reports/selling/export/{type}', [ReportController::class, 'sellingExport']);
|
|
$router->get('/{session}/reports/resume', [ReportController::class, 'resume']);
|
|
$router->get('/{session}/reports/user-log', [LogController::class, 'index']);
|
|
|
|
// System Tools
|
|
$router->post('/{session}/system/reboot', [SystemController::class, 'reboot']);
|
|
$router->post('/{session}/system/shutdown', [SystemController::class, 'shutdown']);
|
|
$router->get('/{session}/system/scheduler', [SchedulerController::class, 'index']);
|
|
$router->post('/{session}/system/scheduler/store', [SchedulerController::class, 'store']);
|
|
$router->post('/{session}/system/scheduler/update', [SchedulerController::class, 'update']);
|
|
$router->post('/{session}/system/scheduler/delete', [SchedulerController::class, 'delete']);
|
|
|
|
// Network & Cookies
|
|
$router->get('/{session}/network/dhcp', [DhcpController::class, 'index']);
|
|
$router->get('/{session}/hotspot/cookies', [HotspotController::class, 'cookies']);
|
|
$router->post('/{session}/hotspot/cookies/remove', [HotspotController::class, 'removeCookie']);
|
|
|
|
// Quick Print
|
|
$router->get('/{session}/quick-print', [QuickPrintController::class, 'index']);
|
|
$router->get('/{session}/quick-print/manage', [QuickPrintController::class, 'manage']);
|
|
$router->post('/{session}/quick-print/store', [QuickPrintController::class, 'store']);
|
|
$router->post('/{session}/quick-print/update', [QuickPrintController::class, 'update']);
|
|
$router->post('/{session}/quick-print/delete', [QuickPrintController::class, 'delete']);
|
|
$router->get('/{session}/quick-print/print/([a-zA-Z0-9_-]+)', [QuickPrintController::class, 'printPacket']);
|
|
|
|
}); // End Router Context Group
|
|
}); // End Auth Group
|
|
|