| Server IP : 65.108.144.40 / Your IP : 216.73.217.165 Web Server : Apache/2.4.52 (Ubuntu) System : Linux ubuntu-8gb-hel1-1 5.15.0-173-generic #183-Ubuntu SMP Fri Mar 6 13:29:34 UTC 2026 x86_64 User : dev ( 1000) PHP Version : 8.2.30 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /var/www/html/project-slim/app/Routes/Groups/ |
Upload File : |
<?php
use App\Controllers\AdminController;
use Slim\Routing\RouteCollectorProxy;
use App\Middleware\AuthMiddleware;
use App\Middleware\AdminMiddleware;
return function (RouteCollectorProxy $admin) {
// All admin routes require authentication and admin privileges
$admin->group('', function (RouteCollectorProxy $protected) {
// Dashboard and overview
$protected->get('/dashboard', [AdminController::class, 'dashboard']);
$protected->get('/overview', [AdminController::class, 'getOverview']);
$protected->get('/statistics', [AdminController::class, 'getStatistics']);
// System management
$protected->group('/system', function (RouteCollectorProxy $system) {
$system->get('/info', [AdminController::class, 'getSystemInfo']);
$system->get('/health', [AdminController::class, 'getSystemHealth']);
$system->post('/backup', [AdminController::class, 'createBackup']);
$system->get('/backups', [AdminController::class, 'getBackups']);
$system->post('/restore/{backup_id}', [AdminController::class, 'restoreBackup']);
$system->delete('/backups/{backup_id}', [AdminController::class, 'deleteBackup']);
});
// User management (admin level)
$protected->group('/users', function (RouteCollectorProxy $users) {
$users->get('', [AdminController::class, 'getAllUsers']);
$users->get('/analytics', [AdminController::class, 'getUserAnalytics']);
$users->post('/{id:[0-9]+}/impersonate', [AdminController::class, 'impersonateUser']);
$users->post('/{id:[0-9]+}/reset-password', [AdminController::class, 'resetUserPassword']);
$users->post('/{id:[0-9]+}/unlock', [AdminController::class, 'unlockUser']);
$users->get('/export', [AdminController::class, 'exportUsers']);
});
// Company management (admin level)
$protected->group('/companies', function (RouteCollectorProxy $companies) {
$companies->get('', [AdminController::class, 'getAllCompanies']);
$companies->get('/analytics', [AdminController::class, 'getCompanyAnalytics']);
$companies->post('/{id:[0-9]+}/suspend', [AdminController::class, 'suspendCompany']);
$companies->post('/{id:[0-9]+}/unsuspend', [AdminController::class, 'unsuspendCompany']);
$companies->get('/export', [AdminController::class, 'exportCompanies']);
});
// Report management (admin level)
$protected->group('/reports', function (RouteCollectorProxy $reports) {
$reports->get('', [AdminController::class, 'getAllReports']);
$reports->get('/analytics', [AdminController::class, 'getReportAnalytics']);
$reports->delete('/{id:[0-9]+}/force', [AdminController::class, 'forceDeleteReport']);
$reports->get('/export', [AdminController::class, 'exportReports']);
});
// Activity logs and audit
$protected->group('/logs', function (RouteCollectorProxy $logs) {
$logs->get('/activity', [AdminController::class, 'getActivityLogs']);
$logs->get('/audit', [AdminController::class, 'getAuditLogs']);
$logs->get('/errors', [AdminController::class, 'getErrorLogs']);
$logs->get('/security', [AdminController::class, 'getSecurityLogs']);
$logs->delete('/cleanup', [AdminController::class, 'cleanupLogs']);
});
// Settings and configuration
$protected->group('/settings', function (RouteCollectorProxy $settings) {
$settings->get('', [AdminController::class, 'getSettings']);
$settings->put('', [AdminController::class, 'updateSettings']);
$settings->get('/email', [AdminController::class, 'getEmailSettings']);
$settings->put('/email', [AdminController::class, 'updateEmailSettings']);
$settings->post('/email/test', [AdminController::class, 'testEmailSettings']);
});
// Maintenance and utilities
$protected->group('/maintenance', function (RouteCollectorProxy $maintenance) {
$maintenance->post('/cache/clear', [AdminController::class, 'clearCache']);
$maintenance->post('/optimize', [AdminController::class, 'optimizeSystem']);
$maintenance->get('/queue/status', [AdminController::class, 'getQueueStatus']);
$maintenance->post('/queue/restart', [AdminController::class, 'restartQueue']);
$maintenance->post('/migrate', [AdminController::class, 'runMigrations']);
});
// Security management
$protected->group('/security', function (RouteCollectorProxy $security) {
$security->get('/sessions', [AdminController::class, 'getActiveSessions']);
$security->delete('/sessions/{session_id}', [AdminController::class, 'killSession']);
$security->get('/failed-logins', [AdminController::class, 'getFailedLogins']);
$security->post('/ban-ip', [AdminController::class, 'banIpAddress']);
$security->delete('/ban-ip/{ip}', [AdminController::class, 'unbanIpAddress']);
});
// API management
$protected->group('/api', function (RouteCollectorProxy $api) {
$api->get('/keys', [AdminController::class, 'getApiKeys']);
$api->post('/keys', [AdminController::class, 'createApiKey']);
$api->delete('/keys/{key_id}', [AdminController::class, 'revokeApiKey']);
$api->get('/usage', [AdminController::class, 'getApiUsage']);
$api->get('/rate-limits', [AdminController::class, 'getRateLimits']);
});
})/* ->add(new AdminMiddleware())->add(new AuthMiddleware()) */; // Uncomment when middleware is implemented
};