Sindbad~EG File Manager
<?php
session_start();
require_once '../config/database.php';
require_once '../includes/functions.php';
header('Content-Type: application/json');
if (!isset($_SESSION['user_id'])) {
echo json_encode(['success' => false, 'message' => 'Unauthorized']);
exit();
}
// Check permission for maintenance access
if (!checkPermission('admin') && $_SESSION['user_level'] !== 'superuser') {
echo json_encode(['success' => false, 'message' => 'Access denied']);
exit();
}
if ($_POST && isset($_POST['action'])) {
$action = sanitizeInput($_POST['action']);
try {
switch ($action) {
case 'cleanup_sessions':
$cleanup_query = "DELETE FROM user_sessions WHERE last_activity < DATE_SUB(NOW(), INTERVAL 1 DAY)";
$cleanup_stmt = $db->prepare($cleanup_query);
$cleanup_stmt->execute();
$deleted_count = $cleanup_stmt->rowCount();
logAudit('MAINTENANCE', 'user_sessions', null, null, ['action' => 'cleanup_sessions', 'deleted' => $deleted_count]);
echo json_encode(['success' => true, 'message' => "Cleaned up $deleted_count expired sessions"]);
break;
case 'clear_cache':
// Clear any cache files if they exist
$cache_cleared = true; // Placeholder for actual cache clearing logic
logAudit('MAINTENANCE', 'system', null, null, ['action' => 'clear_cache']);
echo json_encode(['success' => true, 'message' => 'Cache cleared successfully']);
break;
default:
echo json_encode(['success' => false, 'message' => 'Invalid action']);
break;
}
} catch (Exception $e) {
echo json_encode(['success' => false, 'message' => 'Operation failed: ' . $e->getMessage()]);
}
} else {
echo json_encode(['success' => false, 'message' => 'No action specified']);
}
?>
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists