/** * @param ClientMetadata $metadata * @param Constraint $constraint */ public function validate($metadata, Constraint $constraint) { if (!$metadata->getSectorIdentifierUri()) { return; } $sectorIdentifierUri = $metadata->getSectorIdentifierUri(); /** @var Organization $organization */ $organization = $this->orgRepo->findOneBy(compact('sectorIdentifierUri')); $success = $this->uriChecker->check($metadata, $sectorIdentifierUri); if (!$success) { $metadata->setOrganization(null); } if ($success && $organization instanceof Organization) { $metadata->setOrganization($organization); } }
public function recheck(ClientMetadata $metadata) { $url = $metadata->getSectorIdentifierUri(); try { if ($url !== null && !$this->check($metadata, $url)) { $metadata->setOrganization(null); $metadata->setSectorIdentifierUri(null); $this->em->persist($metadata); $this->em->flush($metadata); } } catch (HttpException $e) { if ($e->getStatusCode() !== 200) { $metadata->setOrganization(null); } } return $metadata; }
private function getOrganization(ClientMetadata $metadata = null) { if ($metadata === null) { return null; } if ($metadata->getOrganization() === null && $metadata->getSectorIdentifierUri()) { $sectorIdentifierUri = $metadata->getSectorIdentifierUri(); try { $verified = $this->getSectorIdentifierUriChecker()->check($metadata, $sectorIdentifierUri); } catch (HttpException $e) { $verified = false; } $uri = parse_url($sectorIdentifierUri); $domain = $uri['host']; $organization = new Organization(); $organization->setDomain($domain)->setName($domain)->setTrusted(false)->setVerifiedAt($verified ? new \DateTime() : null); return $organization; } return $metadata->getOrganization(); }