index.php 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. <?php
  2. use function Hestiacp\quoteshellarg\quoteshellarg;
  3. // Main include
  4. include $_SERVER["DOCUMENT_ROOT"] . "/inc/main.php";
  5. if (empty($_GET["user"])) {
  6. $_GET["user"] = "";
  7. }
  8. if ($_GET["user"] === "system") {
  9. $TAB = "SERVER";
  10. } else {
  11. $TAB = "LOG";
  12. }
  13. // Redirect non-administrators if they request another user's log
  14. if ($_SESSION["userContext"] !== "admin" && !empty($_GET["user"])) {
  15. header("location: /login/");
  16. exit();
  17. }
  18. // Data
  19. if ($_SESSION["userContext"] === "admin" && !empty($_GET["user"])) {
  20. // Check token
  21. verify_csrf($_GET);
  22. $user = quoteshellarg($_GET["user"]);
  23. }
  24. exec(HESTIA_CMD . "v-list-user-log $user json", $output, $return_var);
  25. check_error($return_var);
  26. $data = json_decode(implode("", $output), true);
  27. if (is_array($data)) {
  28. $data = array_reverse($data);
  29. unset($output);
  30. // Render page
  31. if ($user === "system") {
  32. $user = "'" . $_SESSION["user"] . "'";
  33. }
  34. } else {
  35. $data = [];
  36. $data[] = [
  37. "LEVEL" => "error",
  38. "DATE" => date("Y-m-d"),
  39. "TIME" => date("H:i:s"),
  40. "MESSAGE" => "Unable to load logs",
  41. "CATEGORY" => "system",
  42. ];
  43. }
  44. render_page($user, $TAB, "list_log");