diff($dateObject); $days_difference = $difference->days; return $days_difference; } function format_date_for_anymod($date_string) { $date = DateTime::createFromFormat('d/m/Y', $date_string); $formatted_date = $date->format('Y-m-d-'); return $formatted_date; } function makeResponse($app, $user, $deviceId) { #echo $app . "\n"; if ($user == null) { $responseData = [ 'ERROR' => "NULL" ]; return json_encode($responseData, JSON_UNESCAPED_SLASHES); } elseif ($user == "none") { $responseData = [ 'ERROR' => "NULL" ]; return json_encode($responseData, JSON_UNESCAPED_SLASHES); } elseif (stripos(shell_exec("grep -q \"^$user:\" /etc/passwd && echo \"1\" || echo \"2\""), "2") !== false) { $responseData = [ 'ERROR' => "NULL" ]; return json_encode($responseData, JSON_UNESCAPED_SLASHES); } else { $responseData = null; $expirationDate = shell_exec("chage -l $user | grep -i co | awk -F: '{print $2}'"); $expirationDate = trim($expirationDate); $formattedExpirationDate = date_create_from_format("M d, Y", $expirationDate); if ($formattedExpirationDate !== false) { $formattedExpirationDate = date_format($formattedExpirationDate, "d/m/Y"); $remainingDays = days_difference($expirationDate); $limit = trim(shell_exec("php /opt/DragonCore/menu.php printlim | awk '/" . $user . "/ {print $3}'")); $connections = trim(shell_exec("ps -u $user | grep sshd | wc -l")); switch ($app) { case "conecta4g": $responseData = [ 'username' => $user, 'count_connection' => $connections, 'expiration_date' => $formattedExpirationDate, 'expiration_days' => strval($remainingDays), 'limiter_user' => $limit ]; $jsonData = json_encode($responseData, JSON_UNESCAPED_SLASHES); break; case "gl": $responseData = [ 'username' => $user, 'count_connection' => $connections, 'expiration_date' => $formattedExpirationDate, 'expiration_days' => strval($remainingDays), 'limit_connection' => $limit ]; $jsonData = json_encode($responseData, JSON_UNESCAPED_SLASHES); break; case "dt": $responseData = [ 'username' => $user, 'count_connections' => $connections, 'expiration_date' => $formattedExpirationDate, 'expiration_days' => $remainingDays, 'limit_connections' => $limit, 'id' => 0 ]; $jsonData = json_encode($responseData, JSON_UNESCAPED_SLASHES); $jsonData = str_replace(['"' . $responseData['count_connections'] . '"', '"' . $responseData['expiration_days'] . '"', '"' . $responseData['limit_connections'] . '"'], [$responseData['count_connections'], $responseData['expiration_days'], $responseData['limit_connections']], $jsonData); break; case "any": $responseData = [ 'USER_ID' => $user, 'DEVICE' => $deviceId, 'is_active' => "true", 'expiration_date' => format_date_for_anymod($formattedExpirationDate), 'expiry' => $remainingDays . ' days.', 'uuid' => "null" ]; $jsonData = json_encode($responseData, JSON_UNESCAPED_SLASHES); break; case "atx": $responseData = [ 'username' => $user, 'cont_conexao' => $connections, 'data_expiracao' => $formattedExpirationDate, 'dias_expiracao' => strval($remainingDays), 'limite_user' => $limit ]; $jsonData = json_encode($responseData, JSON_UNESCAPED_SLASHES); break; default: $responseData = "App not recognized"; } return $jsonData; } else { $responseData = [ 'ERROR' => "NULL" ]; return json_encode($responseData, JSON_UNESCAPED_SLASHES); } } } svcheckuser() ?>