| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- <?php
- /**
- * Created by PhpStorm.
- * User: Artur
- * Date: 24.09.2018
- * Time: 17:20
- */
- namespace MGModule\DNSManager2\mgLibs\custom\helpers\datatable;
- use MGModule\DNSManager2\mgLibs\custom\helpers\IdnaHelper;
- use MGModule\DNSManager2\models\custom\task\result\Repository;
- use MGModule\DNSManager2\helpers\WHMCS\Service;
- use MGModule\DNSManager2\helpers\WHMCS\Client;
- use MGModule\DNSManager2\helpers\WHMCS\Domain;
- use MGModule\DNSManager2\models\custom\globalsetting\GlobalSettingEnum;
- use MGModule\DNSManager2\mgLibs\custom\manager\GlobalSettingHelper;
- class Import
- {
- CONST DOMAINS = 'domains';
- CONST SERVICES = 'services';
- CONST CLIENTS = 'clients';
- public function getNeeded($zones)
- {
- $activeServices = GlobalSettingHelper::getSetting(GlobalSettingEnum::IMPORT_ACTIVE_SERVICES);
- $activeUsers = GlobalSettingHelper::getSetting(GlobalSettingEnum::IMPORT_ACTIVE_USERS);
- if (!$activeUsers && !$activeServices)
- {
- return $zones;
- }
- $data = $this->getZonesData();
- foreach ($zones as $domain => $ip)
- {
- $domainInLowerCases = IdnaHelper::idnaDecode(strtolower($domain));
- if ($activeServices && $this->isToRemoveByServiceStatus($data, $domainInLowerCases))
- {
- unset($zones[$domain]);
- continue;
- }
- if ($activeUsers && $this->isToRemoveByClientStatus($data, $domainInLowerCases))
- {
- unset($zones[$domain]);
- continue;
- }
- }
- return $zones;
- }
- public function isToRemoveByClientStatus($data, $zone)
- {
- $domains = $data[SELF::DOMAINS][$zone];
- if (isset($domains))
- {
- $clientId = $domains['userid'];
- return $data[SELF::CLIENTS][$clientId]['status'] != Client::STATUS_ACTIVE ? true : false;
- }
- $services = $data[SELF::SERVICES][$zone];
- if (isset($services))
- {
- $clientId = $services['userid'];
- return $data[SELF::CLIENTS][$clientId]['status'] != Client::STATUS_ACTIVE ? true : false;
- }
- return true;
- }
- public function isToRemoveByServiceStatus($data, $zone)
- {
- if (!isset($data[SELF::SERVICES][$zone]) && !isset($data[SELF::DOMAINS][$zone]))
- {
- return true;
- }
- if ($data[SELF::SERVICES][$zone]['domainstatus'] != Service::ACTIVE && $data[SELF::DOMAINS][$zone]['status'] != Service::ACTIVE)
- {
- return true;
- }
- return false;
- }
- public function getZonesData()
- {
- return [
- SELF::DOMAINS => array_change_key_case(Domain::getDomainsAsDomainKey(), CASE_LOWER),
- SELF::SERVICES => array_change_key_case(Service::getServicesAsDomainKey(), CASE_LOWER),
- SELF::CLIENTS => Client::getClientsAsIdKey()
- ];
- }
- }
|