public function fetch($hash, $class, $username) { $classMetadata = $this->metadataManager->loadByClassname($class); if (!$this->storageAdapter->contains($hash, $classMetadata->getContext())) { throw new ObjectNotFoundException($hash); } $data = $this->storageAdapter->fetch($hash, $classMetadata->getContext()); if (array_key_exists('type', $data) && $data['type'] === 'backup') { /** @var PolicyCollectionInterface $policyCollection */ $policyCollection = unserialize($data['policies']); /** @var ReplicatorPolicy $policy */ $policy = $policyCollection->get(self::POLICY_NAME); throw new NotPrimaryServerException($policy->getPrimaryServer()); } // TODO security-checker with given username ("%s::%s", server, username) return $data; }
public function delete($hash, $className) { $metadata = $this->metadataManager->loadByClassname($className); $this->searchAdapter->deindex($hash, $metadata); $this->storageAdapter->delete($hash, $metadata->getContext()); }