index.php 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <?php
  2. use function Hestiacp\quoteshellarg\quoteshellarg;
  3. $TAB = "Access Key";
  4. // Main include
  5. include $_SERVER["DOCUMENT_ROOT"] . "/inc/main.php";
  6. if ($_SESSION["userContext"] === "admin" && !empty($_GET["user"])) {
  7. $user = quoteshellarg($_GET["user"]);
  8. $user_plain = $_GET["user"];
  9. }
  10. // Checks if API access is enabled
  11. $api_status =
  12. !empty($_SESSION["API_SYSTEM"]) && is_numeric($_SESSION["API_SYSTEM"])
  13. ? $_SESSION["API_SYSTEM"]
  14. : 0;
  15. if (($user_plain == "admin" && $api_status < 1) || ($user_plain != "admin" && $api_status < 2)) {
  16. header("Location: /edit/user/");
  17. exit();
  18. }
  19. if (!empty($_GET["key"])) {
  20. $v_key = quoteshellarg(trim($_GET["key"]));
  21. // Key data
  22. exec(HESTIA_CMD . "v-list-access-key " . $v_key . " json", $output, $return_var);
  23. $key_data = json_decode(implode("", $output), true);
  24. unset($output);
  25. if (empty($key_data) || $key_data["USER"] != $user_plain) {
  26. header("Location: /list/access-key/");
  27. exit();
  28. }
  29. // APIs
  30. exec(HESTIA_CMD . "v-list-apis json", $output, $return_var);
  31. $apis = json_decode(implode("", $output), true);
  32. $apis = array_filter($apis, function ($api) use ($user_plain) {
  33. return $user_plain == "admin" || $api["ROLE"] == "user";
  34. });
  35. ksort($apis);
  36. unset($output);
  37. render_page($user, $TAB, "list_access_key");
  38. } else {
  39. exec(HESTIA_CMD . "v-list-access-keys $user json", $output, $return_var);
  40. $data = json_decode(implode("", $output), true);
  41. uasort($data, function ($a, $b) {
  42. return $a["DATE"] <=> $b["DATE"] ?: $a["TIME"] <=> $b["TIME"];
  43. });
  44. unset($output);
  45. // Render page
  46. render_page($user, $TAB, "list_access_keys");
  47. }
  48. // Back uri
  49. $_SESSION["back"] = $_SERVER["REQUEST_URI"];