Пример #1
0
 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;
 }
Пример #3
0
 /**
  * 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());
             }
         }
     }
 }
Пример #5
0
 /**
  * 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;
 }