DB.class.php 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  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 $request)
  19. {
  20. $user = $this->getLoggedUser();
  21. $reply = array();
  22. $result = Vesta::execute(Vesta::V_LIST_DB_BASES, array($user['uid'], 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' => $record['USER'],
  31. 'USER' => $record['USER'],
  32. 'USERS' => (array)$record['USER'],
  33. 'HOST' => $record['HOST'],
  34. 'TYPE' => $record['TYPE'],
  35. 'U_DISK' => $record['U_DISK'],
  36. 'DISK' => 2024,
  37. 'SUSPEND' => $record['SUSPEND'],
  38. 'DATE' => date(Config::get('ui_date_format', strtotime($record['DATE'])))
  39. );
  40. }
  41. if (!$result['status']) {
  42. $this->errors[] = array($result['error_code'] => $result['error_message']);
  43. }
  44. return $this->reply($result['status'], $reply);
  45. }
  46. /**
  47. * Add DB entry
  48. *
  49. * @param Request $request
  50. * @return string - Ajax Reply
  51. */
  52. public function addExecute(Request $request)
  53. {
  54. $user = $this->getLoggedUser();
  55. $_s = $request->getParameter('spell');
  56. $params = array(
  57. 'USER' => $user['uid'],
  58. 'DB' => $_s['DB'],
  59. 'DB_USER' => $_s['USER'],
  60. 'DB_PASSWORD' => $_s['PASSWORD'],
  61. 'TYPE' => $_s['TYPE']
  62. );
  63. $result = Vesta::execute(Vesta::V_ADD_DB_BASE, $params);
  64. if (!$result['status']) {
  65. $this->errors[] = array($result['error_code'] => $result['error_message']);
  66. }
  67. if ($_s['SUSPEND'] == 'on') {
  68. if($result['status']){
  69. $result = array();
  70. $result = Vesta::execute(Vesta::V_SUSPEND_DB_BASE, array('USER' => $user['uid'], 'JOB' => $_s['DB']));
  71. if (!$result['status']) {
  72. $this->status = FALSE;
  73. $this->errors['SUSPEND'] = array($result['error_code'] => $result['error_message']);
  74. }
  75. }
  76. }
  77. return $this->reply($result['status'], $result['data']);
  78. }
  79. /**
  80. * Delete DB entry
  81. *
  82. * @param Request $request
  83. * @return string - Ajax Reply
  84. */
  85. public function deleteExecute(Request $request)
  86. {
  87. $_s = $request->getParameter('spell');
  88. $user = $this->getLoggedUser();
  89. $params = array(
  90. 'USER' => $user['uid'],
  91. 'DB' => $_s['DB']
  92. );
  93. $result = Vesta::execute(Vesta::V_DEL_DB_BASE, $params);
  94. if (!$result['status']) {
  95. $this->errors[] = array($result['error_code'] => $result['error_message']);
  96. }
  97. return $this->reply($result['status'], $result['data']);
  98. }
  99. /**
  100. * Change Password
  101. *
  102. * @param Request $request
  103. * @return string - Ajax Reply
  104. */
  105. public function changeExecute(Request $request)
  106. {
  107. $_s = $request->getParameter('spell');
  108. $_old = $request->getParameter('old');
  109. $_new = $request->getParameter('new');
  110. $user = $this->getLoggedUser();
  111. $result = array();
  112. if($_new['SUSPEND'] == 'on'){
  113. $result = Vesta::execute(Vesta::V_SUSPEND_DB_BASE, array('USER' => $user['uid'], 'DB' => $_new['DB']));
  114. }
  115. else{
  116. $result = Vesta::execute(Vesta::V_UNSUSPEND_DB_BASE, array('USER' => $user['uid'], 'DB' => $_new['DB']));
  117. }
  118. if (!$result['status']) {
  119. $this->status = FALSE;
  120. $this->errors['SUSPEND'] = array($result['error_code'] => $result['error_message']);
  121. }
  122. if ($_new['PASSWORD'] != Vesta::SAME_PASSWORD && $_new['PASSWORD'] != $_old['PASSWORD']) {
  123. $params = array(
  124. 'USER' => $user['uid'],
  125. 'DB' => $_new['DB'],
  126. 'PASSWORD' => $_new['PASSWORD']
  127. );
  128. $result = Vesta::execute(Vesta::V_CHANGE_DB_PASSWORD, $params);
  129. if (!$result['status']) {
  130. $this->errors[] = array($result['error_code'] => $result['error_message']);
  131. }
  132. }
  133. return $this->reply($result['status'], $result['data']);
  134. }
  135. }