| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494 |
- <?php
- use \MGModule\DNSManager2 as main;
- use \MGModule\DNSManager2\mgLibs\custom\manager\ZoneAutomationHelper;
- use \MGModule\DNSManager2\mgLibs\custom\manager\GlobalSettingHelper;
- use \MGModule\DNSManager2\models\custom\globalsetting\GlobalSettingEnum;
- use \MGModule\DNSManager2\mgLibs\custom\helpers;
- use \MGModule\DNSManager2\models\custom\package;
- use \MGModule\DNSManager2\models\custom\reverse;
- use \MGModule\DNSManager2\mgLibs\custom\reverse\ReverseDNS;
- defined('WHMCS6') or define('WHMCS6', isset($GLOBALS['CONFIG']['Version']) && version_compare($GLOBALS['CONFIG']['Version'], '6.0.0', '>='));
- if(!defined('DS'))define('DS',DIRECTORY_SEPARATOR);
- try
- {
- require_once __DIR__.DIRECTORY_SEPARATOR.'loader.php';
- $loader = new main\loader();
- helpers\RegistrarDNSHelper::prepareRegisrtrar();
- }
- catch(Exception $ex)
- {
- logModuleCall(
- 'DNS Manager', __FUNCTION__, $ex->getMessage(), $ex->getMessage(), $ex->getTraceAsString()
- );
- }
- add_hook('AddonActivation', 1, 'DNSManager2AddonActivationHook');
- function DNSManager2AddonActivationHook($params)
- {
- require_once __DIR__ . DIRECTORY_SEPARATOR . 'loader.php';
- $loader = new main\loader();
- try
- {
- main\addon::I(true);
-
- $helper = new ZoneAutomationHelper(ZoneAutomationHelper::ADDON_ACTIVATION, $params['params']?:$params);
- $helper->run();
- }
- catch(Exception $ex)
- {
- main\mgLibs\error\register::register($ex);
- main\addon::dump($ex);
- }
- }
- add_hook('AfterModuleCreate', 1, 'DNSManager2AfterModuleCreateHook');
- function DNSManager2AfterModuleCreateHook($params)
- {
- require_once __DIR__ . DIRECTORY_SEPARATOR . 'loader.php';
- $loader = new main\loader();
- try
- {
- main\addon::I(true);
-
- $helper = new ZoneAutomationHelper(ZoneAutomationHelper::PRODUCT_CREATE, $params['params']?:$params);
- $helper->run();
- }
- catch(Exception $ex)
- {
- main\mgLibs\error\register::register($ex);
- main\addon::dump($ex);
- }
- }
- add_hook('PreRegistrarRegisterDomain', 1, 'DNSManager2PreRegistrarRegistrationHook');
- function DNSManager2PreRegistrarRegistrationHook( $params )
- {
- require_once __DIR__ . DIRECTORY_SEPARATOR . 'loader.php';
- $loader = new main\loader();
- try
- {
- main\addon::I(true);
- $helper = new ZoneAutomationHelper(ZoneAutomationHelper::DOMAIN_REGISTRATION, $params['params'] ? : $params);
- if($helper->getCreator()->getPackage() !== false)
- {
- if((string)$helper->getCreator()->getPackage()->getSettings(package\setting\PackageSettingEnum::ZONE_AUTOMATION_PENDING_REGISTRATION_DOMAIN_TIME) === 'Pre')
- {
- $helper->run();
- if ( $params['params']['dnsmanagement'] ? : $params['dnsmanagement'] )
- {
- $helper = new ZoneAutomationHelper(ZoneAutomationHelper::DOMAIN_WITH_DNS_MANAGEMENT, $params['params'] ? : $params);
- $helper->run();
- }
- }
- }
- }
- catch (Exception $ex)
- {
- main\mgLibs\error\register::register($ex);
- main\addon::dump($ex);
- }
- }
- add_hook('AfterRegistrarRegistration', 1, 'DNSManager2AfterRegistrarRegistrationHook');
- function DNSManager2AfterRegistrarRegistrationHook($params)
- {
- require_once __DIR__ . DIRECTORY_SEPARATOR . 'loader.php';
- $loader = new main\loader();
- try
- {
- main\addon::I(true);
- $helper = new ZoneAutomationHelper(ZoneAutomationHelper::DOMAIN_REGISTRATION, $params['params'] ? : $params);
- if($helper->getCreator()->getPackage() !== false)
- {
- if((string)$helper->getCreator()->getPackage()->getSettings(package\setting\PackageSettingEnum::ZONE_AUTOMATION_PENDING_REGISTRATION_DOMAIN_TIME) !== 'Pre')
- {
- $helper->run();
- if ( $params['params']['dnsmanagement'] ? : $params['dnsmanagement'] )
- {
- $helper = new ZoneAutomationHelper(ZoneAutomationHelper::DOMAIN_WITH_DNS_MANAGEMENT, $params['params'] ? : $params);
- $helper->run();
- }
- }
- }
- }
- catch(Exception $ex)
- {
- main\mgLibs\error\register::register($ex);
- main\addon::dump($ex);
- }
- }
- add_hook('AfterRegistrarTransfer', 1, 'DNSManager2AfterRegistrarTransferHook');
- function DNSManager2AfterRegistrarTransferHook($params)
- {
- require_once __DIR__ . DIRECTORY_SEPARATOR . 'loader.php';
- $loader = new main\loader();
-
- try
- {
- main\addon::I(true);
-
- $helper = new ZoneAutomationHelper(ZoneAutomationHelper::DOMAIN_TRANSFER, $params['params']?:$params);
- if($helper->getCreator()->getPackage() != false)
- {
- if((string)$helper->getCreator()->getPackage()->getSettings(package\setting\PackageSettingEnum::ZONE_AUTOMATION_PENDING_TRANSFER_DOMAIN_TIME) === 'After')
- {
- $helper->run();
- }
- }
- }
- catch(Exception $ex)
- {
- main\mgLibs\error\register::register($ex);
- main\addon::dump($ex);
- }
- }
- add_hook('PreRegistrarTransferDomain', 1, 'DNSManager2PreRegistrarTransferDomainHook');
- function DNSManager2PreRegistrarTransferDomainHook($params)
- {
- require_once __DIR__ . DIRECTORY_SEPARATOR . 'loader.php';
- $loader = new main\loader();
-
- try
- {
- main\addon::I(true);
-
- $helper = new ZoneAutomationHelper(ZoneAutomationHelper::DOMAIN_TRANSFER, $params['params']?:$params);
- if($helper->getCreator()->getPackage() != false)
- {
- if((string)$helper->getCreator()->getPackage()->getSettings(package\setting\PackageSettingEnum::ZONE_AUTOMATION_PENDING_TRANSFER_DOMAIN_TIME) === 'Pre')
- {
- $helper->run();
- }
- }
-
- }
- catch(Exception $ex)
- {
- main\mgLibs\error\register::register($ex);
- main\addon::dump($ex);
- }
- }
- add_hook('AddonTerminated', 1, 'DNSManager2AddonTerminatedHook');
- function DNSManager2AddonTerminatedHook($params)
- {
- require_once __DIR__ . DIRECTORY_SEPARATOR . 'loader.php';
- $loader = new main\loader();
- isset($params['params'])?$params=$params['params']:'';
- try
- {
- main\addon::I(true);
-
- DNSManager2RemoveZones(main\models\custom\zone\ZoneTypeEnum::ADDON, $params['id'], $params['userid']);
-
- }
- catch(Exception $ex)
- {
- main\mgLibs\error\register::register($ex);
- main\addon::dump($ex);
- }
- }
- add_hook('AfterModuleTerminate', 1, 'DNSManager2AfterModuleTerminateHook');
- function DNSManager2AfterModuleTerminateHook($params)
- {
- require_once __DIR__ . DIRECTORY_SEPARATOR . 'loader.php';
- $loader = new main\loader();
- isset($params['params'])?$params=$params['params']:'';
- if($params['model'] instanceof WHMCS\Service\Addon)
- {
- $params['id'] = $params['addonId'];
- DNSManager2AddonTerminatedHook($params);
- return;
- }
- try
- {
- main\addon::I(true);
- if(GlobalSettingHelper::getSetting(GlobalSettingEnum::PREVENT_ZONE_DELETE_AFTER_TERMINATE)){
- return;
- }
- DNSManager2RemoveZones(main\models\custom\zone\ZoneTypeEnum::HOSTING, $params['serviceid'], $params['userid']);
-
- }
- catch (Exception $ex)
- {
- main\mgLibs\error\register::register($ex);
- main\addon::dump($ex);
- }
- }
- function DNSManager2RemoveZones($type, $relid, $clientid)
- {
- $rep = new main\models\custom\zone\Repository();
- $reverses = reverse\Repository::factory()->byServiceTypeAndRelidAndClient($type, $relid, $clientid)->get();
- foreach ($reverses as $reverse)
- {
- try
- {
- if ($reverse !== FALSE)
- {
- $rdns = new ReverseDNS($reverse);
- $rdns->remove();
- main\mgLibs\custom\manager\LogHelper::addSuccessLog('Remove Reverse DNS', 'Reverse DNS has been deleted', $reverse->getFullDomain(), $clientid);
- }
- }
- catch (Exception $e)
- {
- main\mgLibs\custom\manager\LogHelper::addFailLog('Remove Reverse DNS', $e->getMessage(), $reverse->getFullDomain(), $clientid);
- }
- }
- foreach($rep->getZonesWith($type, $relid, $clientid) as $zone)
- {
- try
- {
- if($zone->getModule()->zoneExists())
- {
- $zone->getModule()->terminateZone();
- }
- $zone->delete();
- main\mgLibs\custom\manager\LogHelper::addSuccessLogUsingZone('Remove Zone', '-', $zone);
- main\mgLibs\custom\manager\EmailNotificationHelper::sendClientNotificationUsingZone(main\mgLibs\custom\manager\DefaultNotifications::GENERAL_ZONE_REMOVED_NOTIFICATION, $zone, ['zone_name' => $zone->name]);
- }
- catch (Exception $e)
- {
- main\mgLibs\custom\manager\LogHelper::addFailLogUsingZone('Remove Zone', $e->getMessage(), $zone);
- main\mgLibs\custom\manager\NotificationHelper::addProblemNotification('Zone creation failed ('. $zone->name .')');
- }
- }
- }
- add_hook('ClientAreaPrimaryNavbar', 1, DNSManager2ClientAreaPrimaryNavbar);
- function DNSManager2ClientAreaPrimaryNavbar($vars)
- {
- require_once __DIR__ . DIRECTORY_SEPARATOR . 'loader.php';
- new main\loader();
- try
- {
- main\addon::I(true);
- if(!empty($_SESSION['uid']) && GlobalSettingHelper::getSetting(GlobalSettingEnum::LINK_TO_DNS_MANAGER))
- {
- $navs = $vars->getChildren();
- $dom = $navs['Domains'];
- if(!$dom)
- {
- $dom = $navs['Services'];
- if (!$dom)
- {
- return;
- }
- }
-
- $bId = main\mgLibs\lang::absoluteT('manage_dns');
- $dom->addChild($bId);
- $managerLink = $dom->getChild($bId);
- $managerLink->setUri("index.php?m=DNSManager2");
- $managerLink->setOrder(21);
- }
- }
- catch(Exception $ex)
- {
- main\mgLibs\error\register::register($ex);
- main\addon::dump($ex);
- }
- }
- if(WHMCS6)
- {
- // add_hook('ClientAreaSecondarySidebar', 1, 'DNSManager2ClienAreaSidebarHook'); //dla domen
- add_hook('ClientAreaPrimarySidebar', 1, 'DNSManager2ClienAreaSidebarHook'); //dla serwisów
-
- function DNSManager2ClienAreaSidebarHook($sidebar)
- {
- require_once __DIR__ . DIRECTORY_SEPARATOR . 'loader.php';
- $loader = new main\loader();
- try
- {
- $availableOnPage = [
- 'productdetails',
- 'domaindetails',
- 'domaincontacts',
- 'domainregisterns',
- 'domaingetepp',
- 'domaindns'
- ];
-
- main\addon::I(true);
- if(isset($_GET['action']) && in_array($_GET['action'], $availableOnPage) && (isset($_GET['id']) || isset($_GET['domainid'])))
- {
- if($_GET['action'] == 'productdetails')
- {
- $dnsManagerLinkName = main\mgLibs\lang::absoluteT('dns_manager');
- $showDNSManagerButton = GlobalSettingHelper::getSetting(GlobalSettingEnum::SHOW_DNSMANAGERBUTTON);
- if($showDNSManagerButton == 'on') {
- $thisService = new main\models\whmcs\service\service($_GET['id']);
- $zone = \MGModule\DNSManager2\models\custom\zone\Repository::factory()
- ->byClientID($_SESSION['uid'])
- ->byName($thisService->domain)
- ->one();
- if ($zone !== false) {
- $sidebar->getChild('Service Details Actions')->addChild($dnsManagerLinkName);
- $managerLink = $sidebar->getChild('Service Details Actions')->getChild($dnsManagerLinkName);
- $managerLink->setUri("index.php?m=DNSManager2&mg-action=editZone&zone_id=" . $zone->id);
- $managerLink->setOrder(100);
- }
- }
- $actions = $sidebar->getChild('Service Details Actions');
- }
- else
- {
- $id = ($_GET['id'])?: $_GET['domainid'];
- $ob = \MGModule\DNSManager2\models\whmcs\domains\domain::factory($id);
- $actions = $sidebar->getChild('Domain Details Actions');
-
- if(empty($actions))
- {
- $actions = $sidebar->getChild('Domain Details Management');
- }
- }
- if(empty($actions))
- {
- return ;
- }
-
- $domain = $ob->domain;
-
- $zone = \MGModule\DNSManager2\models\custom\zone\Repository::factory()
- ->byClientID($_SESSION['uid'])
- //->byRelID($_GET['id'])
- ->byName($domain)
- ->one();
- if($zone == false)
- {
- return ;
- }
- if(empty($actions))
- {
- return ;
- }
- $actions->addChild(
- 'manage_dns',
- array(
- 'name' => 'manage_dns',
- 'label' => main\mgLibs\lang::absoluteT('manage_dns'),
- 'uri' => 'index.php?m=DNSManager2&mg-action=editZone&zone_id=' . $zone->id,
- 'order' => 99,
- )
- );
- }
- }
- catch (Exception $ex)
- {
- main\mgLibs\error\register::register($ex);
- main\addon::dump($ex);
- }
- }
- }
- add_hook('ClientAreaPage', 1, 'DNSManager2ClientAreaPageHook');
- function DNSManager2ClientAreaPageHook($params)
- {
- require_once __DIR__ . DIRECTORY_SEPARATOR . 'loader.php';
- $loader = new main\loader();
- try
- {
- $availableOnPage = [
- 'productdetails',
- 'domaindetails',
- 'domaincontacts',
- 'domainregisterns',
- 'domaingetepp',
- 'domaindns'
- ];
- if(in_array($params['clientareaaction'], $availableOnPage))
- {
- $zone = \MGModule\DNSManager2\models\custom\zone\Repository::factory()
- ->byClientID($_SESSION['uid'])
- //->byRelID($_GET['id'])
- ->byName($params['domain'])
- ->one();
- if($zone !== false)
- {
- return array(
- 'dns_manager_link' => 'index.php?m=DNSManager2&mg-action=editZone&zone_id=' . $zone->id,
- 'dns_manager_is_active' => true
- );
- }
- }
- }
- catch(Exception $ex)
- {
- main\mgLibs\error\register::register($ex);
- main\addon::dump($ex);
- }
- }
- //WHMCS Client Merge
- function DNSManager2ClientMerge($vars){
- require_once __DIR__ . DIRECTORY_SEPARATOR . 'loader.php';
- $loader = new main\loader();
- try
- {
- main\addon::I(true);
- helpers\ClientMergeHelper::merge($vars['fromUserID'], $vars['toUserID']);
- }
- catch(Exception $ex)
- {
- main\mgLibs\error\register::register($ex);
- main\addon::dump($ex);
- }
- }
- add_hook('AfterClientMerge', 1, 'DNSManager2ClientMerge');
- try {
-
- \MGModule\DNSManager2\mgLibs\custom\helpers\TransferHelper::transferZone($_REQUEST);
- } catch (\Exception $ex) {
-
- }
|