Dashboard.php 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. <?php
  2. namespace ThurData\Servers\KerioEmail\App\UI\Client\Home\Pages;
  3. use ThurData\Servers\KerioEmail\App\Enums\ControllerEnums;
  4. use ThurData\Servers\KerioEmail\App\Helpers\BuildUrlExtended;
  5. use ThurData\Servers\KerioEmail\App\Libs\Product\ProductManager;
  6. use ThurData\Servers\KerioEmail\App\UI\Client\Home\Fields\FeatureField;
  7. use ThurData\Servers\KerioEmail\Core\UI\Builder\BaseContainer;
  8. use ThurData\Servers\KerioEmail\Core\UI\Interfaces\ClientArea;
  9. /**
  10. *
  11. * Created by PhpStorm.
  12. * User: ThurData
  13. * Date: 10.09.19
  14. * Time: 10:09
  15. * Class Dashboard
  16. */
  17. class Dashboard extends BaseContainer implements ClientArea
  18. {
  19. /**
  20. * @var array
  21. */
  22. protected $featureContainer = [];
  23. public function initContent()
  24. {
  25. logModuleCall(
  26. 'kerioEmail',
  27. __FUNCTION__,
  28. $params,
  29. 'Debug Accounts',
  30. $this
  31. );
  32. $this->initFeatures();
  33. }
  34. /**
  35. *
  36. */
  37. protected function initFeatures()
  38. {
  39. /**
  40. * product manager
  41. */
  42. $productManager = new ProductManager();
  43. $productManager->loadByHostingId($this->getRequestValue('id'));
  44. /**
  45. *
  46. * check if email account page is enabled
  47. */
  48. if($productManager->isControllerAccessible(ControllerEnums::EMAIL_ACCOUNT_PAGE))
  49. {
  50. $feature = new FeatureField('emailAccount');
  51. $feature->setUrl(BuildUrlExtended::getProvisioningUrl('emailAccount'));
  52. $this->addFeature($feature);
  53. }
  54. /**
  55. *
  56. * check if email alias page is enabled
  57. */
  58. if($productManager->isControllerAccessible(ControllerEnums::EMAIL_ALIAS_PAGE))
  59. {
  60. $feature = new FeatureField('emailAlias');
  61. $feature->setUrl(BuildUrlExtended::getProvisioningUrl('emailAlias'));
  62. $this->addFeature($feature);
  63. }
  64. /**
  65. *
  66. * check if ressource page is enabled
  67. */
  68. if($productManager->isControllerAccessible(ControllerEnums::RESSOURCE_PAGE))
  69. {
  70. $feature = new FeatureField('ressource');
  71. $feature->setUrl(BuildUrlExtended::getProvisioningUrl('ressource'));
  72. $this->addFeature($feature);
  73. }
  74. /**
  75. *
  76. * check if distribution list page is enabled
  77. */
  78. if($productManager->isControllerAccessible(ControllerEnums::DISTRIBUTION_MAIL_PAGE))
  79. {
  80. $feature = new FeatureField('distributionList');
  81. $feature->setUrl(BuildUrlExtended::getProvisioningUrl('distributionList'));
  82. $this->addFeature($feature);
  83. }
  84. /**
  85. *
  86. * check if domain alias page is enabled
  87. */
  88. if($productManager->isControllerAccessible(ControllerEnums::DOMAIN_ALIAS_PAGE)) {
  89. $feature = new FeatureField('domainAlias');
  90. $feature->setUrl(BuildUrlExtended::getProvisioningUrl('domainAlias'));
  91. $this->addFeature($feature);
  92. }
  93. /**
  94. *
  95. * check if webmail is enabled
  96. */
  97. if($productManager->isControllerAccessible(ControllerEnums::WEBMAIL_PAGE)) {
  98. $feature = new FeatureField('goWebmail');
  99. $feature->setTargetBlank(true);
  100. $feature->setUrl(BuildUrlExtended::getProvisioningUrl('webmail'));
  101. $this->addFeature($feature);
  102. }
  103. }
  104. /**
  105. * @param FeatureField $feature
  106. * @return $this
  107. */
  108. protected function addFeature(FeatureField $feature)
  109. {
  110. $this->featureContainer[$feature->getId()] = $feature;
  111. return $this;
  112. }
  113. /**
  114. * @return array
  115. */
  116. public function getFeatures()
  117. {
  118. return $this->featureContainer;
  119. }
  120. }