index.php 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. <?php
  2. // Init
  3. error_reporting(NULL);
  4. $TAB = 'SEARCH';
  5. header('Content-Type: application/json');
  6. $_SESSION['back'] = $_SERVER['REQUEST_URI'];
  7. // Main include
  8. include($_SERVER['DOCUMENT_ROOT']."/inc/main.php");
  9. // Check query
  10. $q = $_GET['q'];
  11. if (empty($q)) {
  12. $back=getenv("HTTP_REFERER");
  13. if (!empty($back)) {
  14. header("Location: ".$back);
  15. exit;
  16. }
  17. header("Location: /");
  18. exit;
  19. }
  20. // Data
  21. $q = escapeshellarg($q);
  22. $command = $_SESSION['user'] == 'admin'
  23. ? "v-search-object $q json"
  24. : "v-search-user-object $user $q json";
  25. exec (VESTA_CMD . $command, $output, $return_var);
  26. $data = json_decode(implode('', $output), true);
  27. foreach ($data as $key => $value) {
  28. ++$i;
  29. if ($value['SUSPENDED'] == 'yes') {
  30. $data[$key]['status'] = __('suspended');
  31. $data[$key]['spnd_action'] = __('unsuspend');
  32. } else {
  33. $data[$key]['status'] = __('active');
  34. $data[$key]['spnd_action'] = __('suspend');
  35. }
  36. if ($value['TYPE'] == 'db') {
  37. $data[$key]['object'] = 'database';
  38. } else {
  39. $data[$key]['object'] = strtolower($value['TYPE'] . ' ' . $value['KEY']);
  40. }
  41. $uniq_id = $value['TYPE'] . '-';
  42. if ($value['KEY'] == 'ACCOUNT'){
  43. $uniq_id .= 'acc-';
  44. }
  45. $uniq_id .= sha1($value['RESULT']);
  46. $data[$key]['uniq_id'] = $uniq_id;
  47. if ($value['KEY'] == 'RECORD') {
  48. $data[$key]['edit_link'] = '/edit/'.$value['TYPE'].'/?domain='.$value['PARENT'].'&record_id='.$value['LINK'].'&user='.$value['USER'];
  49. }
  50. if ($value['KEY'] == 'ACCOUNT') {
  51. $data[$key]['edit_link'] = '/edit/'.$value['TYPE'].'/?domain='.$value['PARENT'].'&account='.$value['LINK'].'&user='.$value['USER'];
  52. }
  53. if ($value['KEY'] == 'JOB') {
  54. $data[$key]['edit_link'] = '/edit/'.$value['TYPE'].'/?job='.$value['LINK'].'&user='.$value['USER'];
  55. }
  56. if ($value['KEY'] == 'DATABASE') {
  57. $data[$key]['edit_link'] = '/edit/'.$value['TYPE'].'/?database='.$value['RESULT'].'&user='.$value['USER'];
  58. }
  59. if (($value['KEY'] != 'RECORD') && ($value['KEY'] != 'ACCOUNT') && ($value['KEY'] != 'JOB') && ($value['KEY'] != 'DATABASE') ) {
  60. $data[$key]['edit_link'] = '/edit/'.$value['TYPE'].'/?'.strtolower($value['KEY']).'='.$value['RESULT'].'&user='.$value['USER'];
  61. }
  62. if ($value['KEY'] == 'RECORD') {
  63. $data[$key]['spnd_link'] = $spnd_action.'/'.$value['TYPE'].'/?domain='.$value['PARENT'].'&record_id='.$value['LINK'].'&user='.$value['USER'];
  64. $data[$key]['spnd_confirmation'] = __('SUSPEND_RECORD_CONFIRMATION', $key);
  65. }
  66. if ($value['KEY'] == 'ACCOUNT') {
  67. $data[$key]['spnd_link'] = $spnd_action.'/'.$value['TYPE'].'/?domain='.$value['PARENT'].'&account='.$value['LINK'].'&user='.$value['USER'];
  68. $data[$key]['spnd_confirmation'] = __('SUSPEND_USER_CONFIRMATION', $key);
  69. }
  70. if ($value['KEY'] == 'JOB') {
  71. $data[$key]['spnd_link'] = $spnd_action.'/'.$value['TYPE'].'/?job='.$value['LINK'].'&user='.$value['USER'];
  72. $data[$key]['spnd_confirmation'] = __('SUSPEND_CRON_CONFIRMATION', $key);
  73. }
  74. if ($value['KEY'] == 'DATABASE') {
  75. $data[$key]['spnd_link'] = $spnd_action.'/'.$value['TYPE'].'/?database='.$value['RESULT'].'&user='.$value['USER'];
  76. $data[$key]['spnd_confirmation'] = __('SUSPEND_DATABASE_CONFIRMATION', $key);
  77. }
  78. if (($value['KEY'] != 'RECORD') && ($value['KEY'] != 'ACCOUNT') && ($value['KEY'] != 'JOB') && ($value['KEY'] != 'DATABASE') ) {
  79. $data[$key]['spnd_link'] = $spnd_action.'/'.$value['TYPE'].'/?'.strtolower($value['KEY']).'='.$value['RESULT'].'&user='.$value['USER'];
  80. $data[$key]['spnd_confirmation'] = __('SUSPEND_DOMAIN_CONFIRMATION', $key);
  81. }
  82. if ($value['KEY'] == 'RECORD') {
  83. $data[$key]['delete_link'] = '/delete/'.$value['TYPE'].'/?domain='.$value['PARENT'].'&record_id='.$value['LINK'].'&user='.$value['USER'];
  84. $data[$key]['delete_confirmation'] = __('DELETE_RECORD_CONFIRMATION', $key);
  85. }
  86. if ($value['KEY'] == 'ACCOUNT') {
  87. $data[$key]['delete_link'] = '/delete/'.$value['TYPE'].'/?domain='.$value['PARENT'].'&account='.$value['LINK'].'&user='.$value['USER'];
  88. $data[$key]['delete_confirmation'] = __('DELETE_USER_CONFIRMATION', $key);
  89. }
  90. if ($value['KEY'] == 'JOB') {
  91. $data[$key]['delete_link'] = '/delete/'.$value['TYPE'].'/?job='.$value['LINK'].'&user='.$value['USER'];
  92. $data[$key]['delete_confirmation'] = __('DELETE_CRON_CONFIRMATION', $key);
  93. }
  94. if ($value['KEY'] == 'DATABASE') {
  95. $data[$key]['delete_link'] = '/delete/'.$value['TYPE'].'/?database='.$value['RESULT'].'&user='.$value['USER'];
  96. $data[$key]['delete_confirmation'] = __('DELETE_DATABASE_CONFIRMATION', $key);
  97. }
  98. if (($value['KEY'] != 'RECORD') && ($value['KEY'] != 'ACCOUNT') && ($value['KEY'] != 'JOB') && ($value['KEY'] != 'DATABASE') ) {
  99. $data[$key]['delete_link'] = '/delete/'.$value['TYPE'].'/?'.strtolower($value['KEY']).'='.$value['RESULT'].'&user='.$value['USER'];
  100. $data[$key]['delete_confirmation'] = __('DELETE_DOMAIN_CONFIRMATION', $key);
  101. }
  102. if ($value['TYPE'] == 'user') {
  103. if ($key == $user) {
  104. $data[$key]['logout_link'] = '/logout';
  105. } else {
  106. $data[$key]['login_as_link'] = '/login/?loginas='.$data[$key]['USER'];
  107. }
  108. $data[$key]['spnd_confirmation'] = $value['SUSPENDED'] == 'yes' ? __('UNSUSPEND_USER_CONFIRMATION', $value['USER']) : __('SUSPEND_USER_CONFIRMATION', $value['USER']);
  109. $data[$key]['delete_confirmation'] = __('DELETE_USER_CONFIRMATION', $value['USER']);
  110. }
  111. $data[$key]['ALIAS'] = str_replace(',', ', ', $value['ALIAS']);
  112. $data[$key]['STARRED'] = 0;
  113. if($_COOKIE[$uniq_id] == 1) {
  114. $data[$key]['STARRED'] = 1;
  115. }
  116. if ( $i == 1) {
  117. $total = __('1 object');
  118. } else {
  119. $total = __('%s objects',$i);
  120. }
  121. }
  122. $result = array(
  123. 'data' => $data,
  124. 'total' => isset($total) ? $total : __('%s objects', 0)
  125. );
  126. echo json_encode($result);