123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Webapi\Model\Plugin;
- use Magento\Integration\Model\ConfigBasedIntegrationManager;
- use Magento\Integration\Api\AuthorizationServiceInterface as IntegrationAuthorizationInterface;
- use Magento\Integration\Model\IntegrationConfig;
- /**
- * Plugin for @see \Magento\Integration\Model\ConfigBasedIntegrationManager model to manage resource permissions of
- * integration installed from config file
- */
- class Manager
- {
- /**
- * Integration service
- *
- * @var \Magento\Integration\Api\IntegrationServiceInterface
- */
- protected $_integrationService;
- /**
- * @var IntegrationAuthorizationInterface
- */
- protected $integrationAuthorizationService;
- /**
- * API Integration config
- *
- * @var IntegrationConfig
- */
- protected $integrationConfig;
- /**
- * Construct Setup plugin instance
- *
- * @param IntegrationAuthorizationInterface $integrationAuthorizationService
- * @param \Magento\Integration\Api\IntegrationServiceInterface $integrationService
- * @param IntegrationConfig $integrationConfig
- */
- public function __construct(
- IntegrationAuthorizationInterface $integrationAuthorizationService,
- \Magento\Integration\Api\IntegrationServiceInterface $integrationService,
- IntegrationConfig $integrationConfig
- ) {
- $this->integrationAuthorizationService = $integrationAuthorizationService;
- $this->_integrationService = $integrationService;
- $this->integrationConfig = $integrationConfig;
- }
- /**
- * Process integration resource permissions after the integration is created
- *
- * @param ConfigBasedIntegrationManager $subject
- * @param string[] $integrationNames Name of integrations passed as array from the invocation chain
- *
- * @return string[]
- * @SuppressWarnings(PHPMD.UnusedFormalParameter)
- * @deprecated 100.1.0
- */
- public function afterProcessIntegrationConfig(
- ConfigBasedIntegrationManager $subject,
- $integrationNames
- ) {
- if (empty($integrationNames)) {
- return [];
- }
- /** @var array $integrations */
- $integrations = $this->integrationConfig->getIntegrations();
- foreach ($integrationNames as $name) {
- if (isset($integrations[$name])) {
- $integration = $this->_integrationService->findByName($name);
- if ($integration->getId()) {
- $this->integrationAuthorizationService->grantPermissions(
- $integration->getId(),
- $integrations[$name]['resource']
- );
- }
- }
- }
- return $integrationNames;
- }
- /**
- * Process integration resource permissions after the integration is created
- *
- * @param ConfigBasedIntegrationManager $subject
- * @param array $integrations integrations passed as array from the invocation chain
- *
- * @return array
- * @SuppressWarnings(PHPMD.UnusedFormalParameter)
- */
- public function afterProcessConfigBasedIntegrations(
- ConfigBasedIntegrationManager $subject,
- $integrations
- ) {
- if (empty($integrations)) {
- return [];
- }
- foreach (array_keys($integrations) as $name) {
- $integration = $this->_integrationService->findByName($name);
- if ($integration->getId()) {
- $this->integrationAuthorizationService->grantPermissions(
- $integration->getId(),
- $integrations[$name]['resource']
- );
- }
- }
- return $integrations;
- }
- }
|