Spamworldpro Mini Shell
Spamworldpro


Server : Apache
System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64
User : corals ( 1002)
PHP Version : 7.4.33
Disable Function : exec,passthru,shell_exec,system
Directory :  /home/corals/old/app/code/Zendesk/Zendesk/Observer/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/old/app/code/Zendesk/Zendesk/Observer/ZendeskSettingsSave.php
<?php

namespace Zendesk\Zendesk\Observer;

use Magento\Framework\Event\Observer;
use Zendesk\API\Exceptions\AuthException;

class ZendeskSettingsSave implements \Magento\Framework\Event\ObserverInterface
{
    const ZENDESK_CONFIG_SECTION_NAME = 'zendesk';

    /**
     * @var \Zendesk\Zendesk\Helper\Api
     */
    protected $apiHelper;
    /**
     * @var \Magento\Framework\Message\ManagerInterface
     */
    protected $messageManager;
    /**
     * @var \Zendesk\Zendesk\Helper\Config
     */
    protected $configHelper;

    /**
     * ZendeskSettingsSave constructor.
     * @param \Zendesk\Zendesk\Helper\Config $configHelper
     * @param \Zendesk\Zendesk\Helper\Api $apiHelper
     * @param \Magento\Framework\Message\ManagerInterface $messageManager
     */
    public function __construct(
        \Zendesk\Zendesk\Helper\Config $configHelper,
        \Zendesk\Zendesk\Helper\Api $apiHelper,
        \Magento\Framework\Message\ManagerInterface $messageManager
    ) {
        $this->apiHelper = $apiHelper;
        $this->messageManager = $messageManager;
        $this->configHelper = $configHelper;
    }

    /**
     * If saving Zendesk section and authentication values have been provided,
     * validate and show error message if they are invalid.
     *
     * {@inheritdoc}
     */
    public function execute(Observer $observer)
    {
        $website = $observer->getData('website');
        $store = $observer->getData('store');
        $hasChangedPaths = is_array($observer->getData('changed_paths'));
        $changedPaths = $hasChangedPaths ? $observer->getData('changed_paths') : [];

        if ($hasChangedPaths) {
            // With changed paths hint, look for specific fields to have been changed.
            $hasApiCredentialChanges = false;
            foreach (\Zendesk\Zendesk\Helper\Config::API_CREDENTIAL_PATHS as $apiCredentialPath) {
                if (in_array($apiCredentialPath, $changedPaths)) {
                    $hasApiCredentialChanges = true;
                    break;
                }
            }
        } else {
            // Without changed paths hint, assume API credential changes might have happened.
            $hasApiCredentialChanges = true;
        }

        if (!$hasApiCredentialChanges) {
            return; // No API credential config changes -- bail.
        }

        // Determine scope type and code from presence or absence of $website or $store
        $scopeType = \Magento\Framework\App\Config\ScopeConfigInterface::SCOPE_TYPE_DEFAULT;
        $scopeId = 0;

        if (!empty($website)) {
            $scopeType = \Magento\Store\Model\ScopeInterface::SCOPE_WEBSITE;
            $scopeId = $website;
        }
        if (!empty($store)) {
            $scopeType = \Magento\Store\Model\ScopeInterface::SCOPE_STORE;
            $scopeId = $store;
        }

        if (empty($this->configHelper->getDomain($scopeType, $scopeId))) {
            return;
        }
        if (empty($this->configHelper->getAgentEmail($scopeType, $scopeId))) {
            return;
        }
        if (empty($this->configHelper->getApiToken($scopeType, $scopeId))) {
            return;
        }

        try {
            $this->apiHelper->tryAuthenticate($scopeType, $scopeId);
        } catch (AuthException $e) {
            $this->messageManager->addErrorMessage(__('Unable to authenticate Zendesk credentials.'));
        }
    }
}

Spamworldpro Mini