/** * Parse input structure * * @param array $data * @param \eZ\Publish\Core\REST\Common\Input\ParsingDispatcher $parsingDispatcher * * @return \eZ\Publish\API\Repository\Values\User\PolicyUpdateStruct */ public function parse(array $data, ParsingDispatcher $parsingDispatcher) { $policyUpdate = $this->roleService->newPolicyUpdateStruct(); // @todo XSD says that limitations field is mandatory, but // it needs to be possible to remove limitations from policy if (array_key_exists('limitations', $data)) { if (!is_array($data['limitations'])) { throw new Exceptions\Parser("Invalid format for 'limitations' in PolicyUpdate."); } if (!isset($data['limitations']['limitation']) || !is_array($data['limitations']['limitation'])) { throw new Exceptions\Parser("Invalid format for 'limitations' in PolicyUpdate."); } foreach ($data['limitations']['limitation'] as $limitationData) { $policyUpdate->addLimitation($this->parserTools->parseLimitation($limitationData)); } } return $policyUpdate; }
/** * Instantiates a policy update class. * * @return \eZ\Publish\API\Repository\Values\User\PolicyUpdateStruct */ public function newPolicyUpdateStruct() { return $this->service->newPolicyUpdateStruct(); }