proxmoxVPS.php 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. <?php
  2. use Illuminate\Database\Capsule\Manager as DB;
  3. use ModulesGarden\Servers\ProxmoxVps\Core\App\AppContext;
  4. if (!defined("WHMCS"))
  5. {
  6. die("This file cannot be accessed directly");
  7. }
  8. if (!defined('DS'))
  9. {
  10. define('DS', DIRECTORY_SEPARATOR);
  11. }
  12. require_once __DIR__ . DIRECTORY_SEPARATOR . 'core' . DIRECTORY_SEPARATOR . 'WhmcsErrorIntegration.php';
  13. function proxmoxVPS_CreateAccount(array $params)
  14. {
  15. require_once __DIR__ . DIRECTORY_SEPARATOR . 'core' . DIRECTORY_SEPARATOR . 'App' . DIRECTORY_SEPARATOR . 'AppContext.php';
  16. $appContext = new AppContext();
  17. return $appContext->runApp(__FUNCTION__, $params);
  18. }
  19. function proxmoxVPS_SuspendAccount(array $params)
  20. {
  21. require_once __DIR__ . DIRECTORY_SEPARATOR . 'core' . DIRECTORY_SEPARATOR . 'App' . DIRECTORY_SEPARATOR . 'AppContext.php';
  22. $appContext = new AppContext();
  23. return $appContext->runApp(__FUNCTION__, $params);
  24. }
  25. function proxmoxVPS_UnsuspendAccount(array $params)
  26. {
  27. require_once __DIR__ . DIRECTORY_SEPARATOR . 'core' . DIRECTORY_SEPARATOR . 'App' . DIRECTORY_SEPARATOR . 'AppContext.php';
  28. $appContext = new AppContext();
  29. return $appContext->runApp(__FUNCTION__, $params);
  30. }
  31. function proxmoxVPS_TerminateAccount(array $params)
  32. {
  33. require_once __DIR__ . DIRECTORY_SEPARATOR . 'core' . DIRECTORY_SEPARATOR . 'App' . DIRECTORY_SEPARATOR . 'AppContext.php';
  34. $appContext = new AppContext();
  35. return $appContext->runApp(__FUNCTION__, $params);
  36. }
  37. if($_REQUEST['id'] || $_REQUEST['serviceid']){
  38. try{
  39. $serviceId = $_REQUEST['id'] ? $_REQUEST['id'] : $_REQUEST['serviceid'];
  40. $statement = DB::connection()
  41. ->getPdo()
  42. ->prepare("SELECT p.`value`
  43. FROM `ProxmoxAddon_ProductConfiguration` p
  44. LEFT JOIN tblhosting h ON ( h.packageid = p.product_id )
  45. WHERE h.id =:id
  46. AND p.`setting` = :setting
  47. AND p.`value` LIKE :value");
  48. $statement->execute(["id" => $serviceId, "setting" => "cloudInit", "value" => '"on"' ]);
  49. $proxmoxVpsChangePassword = $statement->rowCount() == 1;
  50. if(!$proxmoxVpsChangePassword){
  51. $statement = DB::connection()
  52. ->getPdo()
  53. ->prepare("SELECT p.`value`
  54. FROM `ProxmoxAddon_ProductConfiguration` p
  55. LEFT JOIN tblhosting h ON ( h.packageid = p.product_id )
  56. WHERE h.id =:id
  57. AND p.`setting` = :setting
  58. AND p.`value` LIKE :value");
  59. $statement->execute(["id" => $serviceId, "setting" => "agentServicePassword", "value" => '"on"' ]);
  60. $proxmoxVpsChangePassword = $statement->rowCount() == 1;
  61. }
  62. } catch (\Exception $ex) {
  63. }
  64. }
  65. if($proxmoxVpsChangePassword){
  66. function proxmoxVPS_ChangePassword(array $params)
  67. {
  68. require_once __DIR__ . DIRECTORY_SEPARATOR . 'core' . DIRECTORY_SEPARATOR . 'App' . DIRECTORY_SEPARATOR . 'AppContext.php';
  69. $appContext = new AppContext();
  70. return $appContext->runApp(__FUNCTION__, $params);
  71. }
  72. }
  73. function proxmoxVPS_ChangePackage(array $params)
  74. {
  75. require_once __DIR__ . DIRECTORY_SEPARATOR . 'core' . DIRECTORY_SEPARATOR . 'App' . DIRECTORY_SEPARATOR . 'AppContext.php';
  76. $appContext = new AppContext();
  77. return $appContext->runApp(__FUNCTION__, $params);
  78. }
  79. function proxmoxVPS_TestConnection(array $params)
  80. {
  81. require_once __DIR__ . DIRECTORY_SEPARATOR . 'core' . DIRECTORY_SEPARATOR . 'App' . DIRECTORY_SEPARATOR . 'AppContext.php';
  82. $appContext = new AppContext();
  83. return $appContext->runApp(__FUNCTION__, $params);
  84. }
  85. function proxmoxVPS_UsageUpdate(array $params)
  86. {
  87. }
  88. function proxmoxVPS_ConfigOptions(array $params)
  89. {
  90. require_once __DIR__ . DIRECTORY_SEPARATOR . 'core' . DIRECTORY_SEPARATOR . 'App' . DIRECTORY_SEPARATOR . 'AppContext.php';
  91. $appContext = new AppContext();
  92. return $appContext->runApp(__FUNCTION__, $params);
  93. }
  94. function proxmoxVPS_MetaData()
  95. {
  96. require_once __DIR__ . DIRECTORY_SEPARATOR . 'core' . DIRECTORY_SEPARATOR . 'App' . DIRECTORY_SEPARATOR . 'AppContext.php';
  97. $appContext = new AppContext();
  98. return $appContext->runApp(__FUNCTION__, []);
  99. }
  100. /**
  101. * FUNCTION proxmoxVPS_AdminCustomButtonArray
  102. * This function can be used to define custom functions.
  103. * @param type $params
  104. * @return string
  105. */
  106. function proxmoxVPS_AdminCustomButtonArray($params) {
  107. $buttons = array(
  108. "Change User Role" => "ChangeUserRole",
  109. "Reset Bandwidth" => "ResetBandwidth",
  110. );
  111. return $buttons;
  112. }
  113. function proxmoxVPS_ChangeUserRole($params)
  114. {
  115. require_once __DIR__ . DIRECTORY_SEPARATOR . 'core' . DIRECTORY_SEPARATOR . 'App' . DIRECTORY_SEPARATOR . 'AppContext.php';
  116. $appContext = new AppContext();
  117. return $appContext->runApp(__FUNCTION__, $params);
  118. }
  119. function proxmoxVPS_ResetBandwidth($params)
  120. {
  121. require_once __DIR__ . DIRECTORY_SEPARATOR . 'core' . DIRECTORY_SEPARATOR . 'App' . DIRECTORY_SEPARATOR . 'AppContext.php';
  122. $appContext = new AppContext();
  123. return $appContext->runApp(__FUNCTION__, $params);
  124. }
  125. function proxmoxVPS_AdminServicesTabFields($params)
  126. {
  127. require_once __DIR__ . DIRECTORY_SEPARATOR . 'core' . DIRECTORY_SEPARATOR . 'App' . DIRECTORY_SEPARATOR . 'AppContext.php';
  128. $appContext = new AppContext();
  129. return $appContext->runApp(__FUNCTION__, $params);
  130. }
  131. function proxmoxVPS_ClientArea($params)
  132. {
  133. if($params['status']!='Active'){
  134. return;
  135. }
  136. require_once __DIR__ . DIRECTORY_SEPARATOR . 'core' . DIRECTORY_SEPARATOR . 'App' . DIRECTORY_SEPARATOR . 'AppContext.php';
  137. $appContext = new AppContext();
  138. return $appContext->runApp('clientarea', $params);
  139. }
  140. function proxmoxVPS_GetLicenseData($force = false)
  141. {
  142. $class = '';
  143. if(!class_exists($class ))
  144. {
  145. return [];
  146. }
  147. $class = '\\'.$class;
  148. return $class::getLicenseData($force);
  149. }