DeleteEmailAliasDataProvider.php 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. <?php
  2. namespace ThurData\Servers\KerioEmail\App\UI\Client\EmailAlias\Providers;
  3. use ThurData\Servers\KerioEmail\App\Helpers\KerioManager;
  4. use ThurData\Servers\KerioEmail\App\Libs\Product\ProductManager;
  5. use ThurData\Servers\KerioEmail\App\Libs\Kerio\Components\Api\Soap\Models\AccountAlias;
  6. use ThurData\Servers\KerioEmail\Core\Models\Whmcs\Hosting;
  7. use ThurData\Servers\KerioEmail\Core\UI\ResponseTemplates\HtmlDataJsonResponse;
  8. use ThurData\Servers\KerioEmail\Core\UI\Widget\Forms\DataProviders\BaseDataProvider;
  9. /**
  10. *
  11. * Created by PhpStorm.
  12. * User: ThurData
  13. * Date: 18.09.19
  14. * Time: 12:59
  15. * Class DeleteEmailAliasDataProvider
  16. */
  17. class DeleteEmailAliasDataProvider extends BaseDataProvider
  18. {
  19. public function read()
  20. {
  21. $this->data['id'] = $this->actionElementId;
  22. }
  23. public function update()
  24. {
  25. // TODO: Implement update() method.
  26. }
  27. public function delete()
  28. {
  29. /**
  30. * hosting id
  31. */
  32. $hid = $this->request->get('id');
  33. /**
  34. * product manager allow to check product settings
  35. */
  36. logModuleCall(
  37. 'kerioEmail',
  38. __FUNCTION__,
  39. $this->data['id'],
  40. 'Debug Error',
  41. $this
  42. );
  43. $productManager = new ProductManager();
  44. $productManager->loadByHostingId($hid);
  45. return (new HtmlDataJsonResponse())->setMessageAndTranslate('emailAliasHasBeenDeleted')->setStatusSuccess();
  46. }
  47. public function massDelete()
  48. {
  49. /**
  50. * hosting id
  51. */
  52. $hid = $this->request->get('id');
  53. /**
  54. * product manager allow to check product settings
  55. */
  56. $productManager = new ProductManager();
  57. $productManager->loadByHostingId($hid);
  58. /**
  59. *
  60. * get soap create alias service
  61. * set service configuration
  62. */
  63. $service = (new KerioManager())
  64. ->getApiByHosting($hid)
  65. ->soap
  66. ->service()
  67. ->deleteAccountAlias();
  68. foreach ($this->request->get('massActions') as $endodedData)
  69. {
  70. $data = json_decode(base64_decode($endodedData), true);
  71. $data['id'] = $data['accId'];
  72. $service->setFormData($data);
  73. $result = $service->run();
  74. }
  75. return (new HtmlDataJsonResponse())->setMessageAndTranslate('massEmailAliasHasBeenDeleted')->setStatusSuccess();
  76. }
  77. }