getCurrentExtensionName = $getCurrentExtensionName; $this->extensionAuthorizationRepository = $extensionAuthorizationRepository; $this->isPaidExtension = $isPaidExtension; $this->refreshAuthorizationStatus = $refreshAuthorizationStatus; $this->extensionAuthorizationFactory = $extensionAuthorizationFactory; $this->disableExtension = $disableExtension; } /** * Predispatch admin action controller * * @param \Magento\Framework\Event\Observer $observer * @return void * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public function execute(Observer $observer) { try { $extensionName = $this->getCurrentExtensionName->execute(); if ($this->isPaidExtension->execute($extensionName)) { try { $authorization = $this->extensionAuthorizationRepository->get($extensionName); } catch (NoSuchEntityException $noSuchEntityException) { $authorization = $this->extensionAuthorizationFactory->create($extensionName); } $authorization = $this->refreshAuthorizationStatus->execute($authorization); if (! $authorization->isAuthorized()) { $this->disableExtension->execute($authorization->getModuleName()); } } } catch (NotFoundException|NoSuchEntityException $e) { return; } } }