HEX
Server: Apache
System: Linux hz.vslconceptsdomains.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: dkfounda (3233)
PHP: 8.1.34
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //usr/local/mailchannels/hooks/PostAddOnDomainDelAddOnDomain.php
<?php

namespace MailChannels;


class PostAddOnDomainDelAddOnDomain extends PostAccountsCreate {
    public function execute($hookData) {
        //'output' is an array; therefore, take the object at index 0 of 'output' to parse 'result' and 'reason'
        if (!isset($hookData['data']) || !isset($hookData['data']['output']) || !isset($hookData['data']['output'][0]['result'])) {
            return array(false, "missing result parameter");
        } else if ($hookData['data']['output'][0]['result'] == 0) {
            if (!isset($hookData['data']['output'][0]['reason'])) {
              return array(false, "cpanel api function deladdondomain failed and missing reason parameter");
            } else {
                return array(false, "cpanel api function deladdondomain failed, reason: {$hookData['data']['output'][0]['reason']}");
            }
        } else {
            if (!isset($hookData['data']['args']) || !isset($hookData['data']['args']['domain'])) {
                return array(false, "required element in parameters is not present ([data][args][domain])");
            }

            $isInboundEnabled = $this->inboundEnabled();
            if ($isInboundEnabled) {
                $isAutoDeProvisioningEnabled = $this->inboundConfig->autoDomainDeProvisioning();
                $processParkedAndAddonDomains = $this->inboundConfig->processParkedAndAddonDomains();

                if ($isAutoDeProvisioningEnabled && $processParkedAndAddonDomains) {
                    $domain = $hookData['data']['args']['domain'];

                    try {
                        $deprovisionResult = $this->inboundSmtpService->deProvisionDomain($domain);
                        if ($deprovisionResult) {
                            return array(true, "domain $domain no longer uses MailChannels");
                        } else {
                            return array(true, "action not taken; domain $domain not found");
                        }
                    } catch (\Exception $e) {
                        $errorMessage = $e->getTraceAsString();
                        return array(false, "unexpected error deprovisioning addon domain $domain: $errorMessage");
                    }
                }
                $strIsAutoDeProvisioningEnabled = var_export($isAutoDeProvisioningEnabled, true);
                $strProcessParkedAndAddonDomains = var_export($processParkedAndAddonDomains, true);
                $message = "no action taken; autoDeProvisioningEnabled: $strIsAutoDeProvisioningEnabled, processParkedAndAddonDomains: $strProcessParkedAndAddonDomains";
                return array(true, $message);
            }
            return array(true, "action not taken; inbound not enabled");
        }
    }

    public static function category() {
        return 'Cpanel';
    }

    public static function event() {
        return 'Api2::AddonDomain::deladdondomain';
    }

    public static function stage() {
        return 'post';
    }

}