public function testLoadActiveIntegrationByConsumerId() { $consumerId = 1; $integrationData = ['integration_id' => 1, 'name' => 'Test Integration']; $this->resourceMock->expects($this->once())->method('selectActiveIntegrationByConsumerId')->with($consumerId)->will($this->returnValue($integrationData)); $this->integrationModel->loadActiveIntegrationByConsumerId($consumerId); $this->assertEquals($integrationData, $this->integrationModel->getData()); }
/** * Check whether integration data or assigned resources were changed * * @param Integration $integration * @param array $originalResources * @return bool */ private function hasDataChanged(Integration $integration, $originalResources) { if (!$integration->getOrigData()) { return true; } // Check if resources have changed $newResources = $integration->getData('resource'); $commonResources = array_intersect($originalResources, $newResources); if (count($commonResources) != count($originalResources) || count($commonResources) != count($newResources)) { return true; } // Check if other data has changed $fields = [Integration::ID, Integration::NAME, Integration::EMAIL, Integration::ENDPOINT, Integration::IDENTITY_LINK_URL, Integration::SETUP_TYPE, Integration::CONSUMER_ID]; foreach ($fields as $field) { if ($integration->getOrigData($field) != $integration->getData($field)) { return true; } } return false; }
/** * Persist API permissions. * * Permissions are expected to be set to integration object by 'resource' key. * If 'all_resources' is set and is evaluated to true, permissions to all resources will be granted. * * @param IntegrationModel $integration * @return void */ protected function _saveApiPermissions(IntegrationModel $integration) { if ($integration->getId()) { if ($integration->getData('all_resources')) { $this->integrationAuthorizationService->grantAllPermissions($integration->getId()); } elseif (is_array($integration->getData('resource'))) { $this->integrationAuthorizationService->grantPermissions($integration->getId(), $integration->getData('resource')); } else { $this->integrationAuthorizationService->grantPermissions($integration->getId(), []); } } }
/** * Persist API permissions. * * Permissions are expected to be set to integration object by 'resource' key. * If 'all_resources' is set and is evaluated to true, permissions to all resources will be granted. * * @param IntegrationModel $integration * @return void */ protected function _saveApiPermissions(IntegrationModel $integration) { if ($integration->getId()) { $userIdentifier = $this->_createUserIdentifier($integration->getId()); if ($integration->getData('all_resources')) { $this->_authzService->grantAllPermissions($userIdentifier); } else { if (is_array($integration->getData('resource'))) { $this->_authzService->grantPermissions($userIdentifier, $integration->getData('resource')); } else { $this->_authzService->grantPermissions($userIdentifier, array()); } } } }
/** * Return available resourses for integration model * * @param IntegrationModel $integration * @return string[] */ private function getIntegrationApiResource(IntegrationModel $integration) { $resources = []; $integrationResources = $this->integrationApiConfig->getIntegrations(); $integrationName = $integration->getData('name'); if (!empty($integrationResources[$integrationName]['resource'])) { $resources = $integrationResources[$integrationName]['resource']; } return $resources; }