DB.class.php 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247
  1. <?php
  2. /**
  3. * DB
  4. *
  5. * @author vesta, http://vestacp.com/
  6. * @author Dmitry Malishev <dima.malishev@gmail.com>
  7. * @author Dmitry Naumov-Socolov <naumov.socolov@gmail.com>
  8. * @copyright vesta 2010-2011
  9. */
  10. class DB extends AjaxHandler
  11. {
  12. /**
  13. * Get DB entries
  14. *
  15. * @param Request $request
  16. * @return string - Ajax Reply
  17. */
  18. public function getListExecute($request)
  19. {
  20. $_user = 'vesta';
  21. $reply = array();
  22. $result = Vesta::execute(Vesta::V_LIST_DB_BASES, array($_user, Config::get('response_type')));
  23. foreach ($result['data'] as $db => $record) {
  24. $type = $record['TYPE'];
  25. if (!isset($reply[$type])) {
  26. $reply[$type] = array();
  27. }
  28. $reply[$type][] = array(
  29. 'DB' => $db,
  30. 'OWNER' => 'John Travlolta',
  31. 'USERS' => (array)$record['USER'],
  32. 'HOST' => $record['HOST'],
  33. 'TYPE' => $record['TYPE'],
  34. 'U_DISK' => $record['U_DISK'],
  35. 'DISK' => 2024,
  36. 'SUSPEND' => $record['SUSPEND'],
  37. 'DATE' => date(Config::get('ui_date_format', strtotime($record['DATE'])))
  38. );
  39. }
  40. if (!$result['status']) {
  41. $this->errors[] = array($result['error_code'] => $result['error_message']);
  42. }
  43. $reply['postgre'][] = array(
  44. 'DB' => 'x',
  45. 'OWNER' => 'John Travlolta',
  46. 'USERS' => array('E'),
  47. 'HOST' => 'xxx',
  48. 'TYPE' => '34',
  49. 'U_DISK' => '0',
  50. 'SUSPEND' => 'false',
  51. 'DATE' => '2011-01-01'
  52. );
  53. return $this->reply($result['status'], $reply);
  54. }
  55. /**
  56. * Add DB entry
  57. *
  58. * @param Request $request
  59. * @return string - Ajax Reply
  60. */
  61. public function addExecute($request)
  62. {
  63. $r = new Request();
  64. $_s = $r->getSpell();
  65. $_user = 'vesta';
  66. $params = array(
  67. 'USER' => $_user,
  68. 'DB' => $_s['DB'],
  69. 'DB_USER' => $_s['DB_USER'],
  70. 'DB_PASSWORD' => $_s['DB_PASSWORD'],
  71. 'TYPE' => $_s['TYPE']
  72. );
  73. if ($_s['HOST']) {
  74. $params['HOST'] = $_s['HOST'];
  75. }
  76. $result = Vesta::execute(Vesta::V_ADD_DB_BASE, $params);
  77. if (!$result['status']) {
  78. $this->errors[] = array($result['error_code'] => $result['error_message']);
  79. }
  80. return $this->reply($result['status'], $result['data']);
  81. }
  82. /**
  83. * Delete DB entry
  84. *
  85. * @param Request $request
  86. * @return string - Ajax Reply
  87. */
  88. public function delExecute($request)
  89. {
  90. $r = new Request();
  91. $_s = $r->getSpell();
  92. $_user = 'vesta';
  93. $params = array(
  94. 'USER' => $_user,
  95. 'DB' => $_user.'_'.$_s['DB']
  96. );
  97. $result = Vesta::execute(Vesta::V_DEL_DB_BASE, $params);
  98. if (!$result['status']) {
  99. $this->errors[] = array($result['error_code'] => $result['error_message']);
  100. }
  101. return $this->reply($result['status'], $result['data']);
  102. }
  103. /**
  104. * Change Password
  105. *
  106. * @param Request $request
  107. * @return string - Ajax Reply
  108. */
  109. public function changePasswordExecute($request)
  110. {
  111. $r = new Request();
  112. $_s = $r->getSpell();
  113. $_user = 'vesta';
  114. $result = array();
  115. $params = array(
  116. 'USER' => $_user,
  117. 'DB' => $_user.'_'.$_s['DB'],
  118. 'PASSWORD' => $_s['DB_PASSWORD']
  119. );
  120. $result = Vesta::execute(Vesta::V_CHANGE_DB_PASSWORD, $params);
  121. if (!$result['status']) {
  122. $this->errors[] = array($result['error_code'] => $result['error_message']);
  123. }
  124. return $this->reply($result['status'], $result['data']);
  125. }
  126. /**
  127. * Suspend DB entry
  128. *
  129. * @param Request $request
  130. * @return string - Ajax Reply
  131. */
  132. public function suspendExecute($request)
  133. {
  134. $r = new Request();
  135. $_s = $r->getSpell();
  136. $_user = 'vesta';
  137. $params = array(
  138. 'USER' => $_user,
  139. 'DB' => $_user.'_'.$_s['DB']
  140. );
  141. $result = Vesta::execute(Vesta::V_SUSPEND_DB_BASE, $params);
  142. if (!$result['status']) {
  143. $this->errors[] = array($result['error_code'] => $result['error_message']);
  144. }
  145. return $this->reply($result['status'], $result['data']);
  146. }
  147. /**
  148. * Unsuspend DB entry
  149. *
  150. * @param Request $request
  151. * @return string - Ajax Reply
  152. */
  153. public function unsuspendExecute($request)
  154. {
  155. $r = new Request();
  156. $_s = $r->getSpell();
  157. $_user = 'vesta';
  158. $params = array(
  159. 'USER' => $_user,
  160. 'DB' => $_user.'_'.$_s['DB']
  161. );
  162. $result = Vesta::execute(Vesta::V_UNSUSPEND_DB_BASE, $params);
  163. if (!$result['status']) {
  164. $this->errors[] = array($result['error_code'] => $result['error_message']);
  165. }
  166. return $this->reply($result['status'], $result['data']);
  167. }
  168. /**
  169. * Batch Suspend DB entries
  170. *
  171. * @param Request $request
  172. * @return string - Ajax Reply
  173. */
  174. public function suspendAllExecute($request)
  175. {
  176. $r = new Request();
  177. $_s = $r->getSpell();
  178. $_user = 'vesta';
  179. $_JOB = $_s['JOB'];
  180. $params = array(
  181. 'USER' => $_user
  182. );
  183. $result = Vesta::execute(Vesta::V_SUSPEND_DB_BASES, $params);
  184. if (!$result['status']) {
  185. $this->errors[] = array($result['error_code'] => $result['error_message']);
  186. }
  187. return $this->reply($result['status'], $result['data']);
  188. }
  189. /**
  190. * Batch unsuspend DB entries
  191. *
  192. * @param Request $request
  193. * @return string - Ajax Reply
  194. */
  195. public function unsuspendAllExecute($request)
  196. {
  197. $r = new Request();
  198. $_s = $r->getSpell();
  199. $_user = 'vesta';
  200. $params = array(
  201. 'USER' => $_user
  202. );
  203. $result = Vesta::execute(Vesta::V_UNSUSPEND_DB_BASES, $params);
  204. if (!$result['status']) {
  205. $this->errors[] = array($result['error_code'] => $result['error_message']);
  206. }
  207. return $this->reply($result['status'], $result['data']);
  208. }
  209. }