DB.class.php 4.6 KB

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