/** * 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; }