ChangePackage.php 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <?php
  2. namespace ModulesGarden\Servers\ZimbraEmail\App\Libs\Zimbra\Components\Api\Soap\Services\Update;
  3. use ModulesGarden\Servers\ZimbraEmail\App\Enums\ProductParams;
  4. use ModulesGarden\Servers\ZimbraEmail\App\Enums\Zimbra;
  5. use ModulesGarden\Servers\ZimbraEmail\App\Libs\Zimbra\Components\Api\Soap\Interfaces\ApiService;
  6. use ModulesGarden\Servers\ZimbraEmail\App\Libs\Zimbra\Components\Api\Soap\Models\Account;
  7. use ModulesGarden\Servers\ZimbraEmail\App\Libs\Zimbra\Components\Api\Soap\Traits\ProductManagerHandler;
  8. /**
  9. *
  10. * Created by PhpStorm.
  11. * User: Tomasz Bielecki ( tomasz.bi@modulesgarden.com )
  12. * Date: 07.11.19
  13. * Time: 13:03
  14. * Class ChangePackage
  15. */
  16. class ChangePackage extends ApiService
  17. {
  18. use ProductManagerHandler;
  19. public function isValid()
  20. {
  21. if(!$this->formData['domain'])
  22. {
  23. $this->setError('Domain name can not be found.');
  24. return false;
  25. }
  26. return parent::isValid(); // TODO: Change the autogenerated stub
  27. }
  28. public function process()
  29. {
  30. $accounts = $this->api->repository()->accounts->getByDomainName($this->formData['domain']);
  31. foreach($accounts as $account)
  32. {
  33. /* @var $account Account*/
  34. foreach($this->productManager->getZimbraConfiguration() as $key => $value)
  35. {
  36. $value = $value === ProductParams::SWITCHER_ENABLED ? Zimbra::ATTR_ENABLED : Zimbra::ATTR_DISABLED;
  37. $account->setAttr($key, $value);
  38. $result = $this->api->account->update($account);
  39. if(!$result)
  40. {
  41. //todo some logs
  42. }
  43. }
  44. }
  45. return true;
  46. }
  47. }