ListAccounts.php 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. <?php
  2. namespace ThurData\Servers\KerioEmail\App\Http\Actions;
  3. use ThurData\Servers\KerioEmail\App\Helpers\KerioManager;
  4. use ThurData\Servers\KerioEmail\App\Libs\Product\ProductManager;
  5. use ThurData\Servers\KerioEmail\App\Traits\ExtensionsCheckerTrait;
  6. use ThurData\Servers\KerioEmail\Core\App\Controllers\Instances\AddonController;
  7. use ThurData\Servers\KerioEmail\Api\KerioWhmcs;
  8. class ListAccounts extends AddonController
  9. {
  10. use ExtensionsCheckerTrait;
  11. public function execute($params = null)
  12. {
  13. $api = new KerioWhmcs('whmcsKerioEmail', 'Thurdata', '1.0');
  14. try {
  15. $api->login($params['serverhostname'], $params['serverusername'], $params['serverpassword']);
  16. $domainID = $api->getDomainId($params['domain']);
  17. } catch (KerioApiException $error) {
  18. logModuleCall(
  19. 'kerioEmail',
  20. __FUNCTION__,
  21. $error,
  22. 'Debug Error',
  23. $error->getMessage()
  24. );
  25. return ['error' => $error->getMessage()];
  26. }
  27. if ($domainID === FALSE) {
  28. return "Error: Domain $domain not found";
  29. }
  30. try {
  31. $users = $api->getUsers(['loginName'], $domainID);
  32. } catch (KerioApiException $error) {
  33. logModuleCall(
  34. 'kerioEmail',
  35. __FUNCTION__,
  36. $users,
  37. 'Debug Userlist',
  38. $domainID
  39. );
  40. return ['error' => $error->getMessage()];
  41. }
  42. return [
  43. 'success' => true,
  44. 'accounts' => $users
  45. ];
  46. }
  47. }