Parses the input structure to Limitation object.
public parseLimitation ( array $limitation ) : eZ\Publish\API\Repository\Values\User\Limitation | ||
$limitation | array | |
return | eZ\Publish\API\Repository\Values\User\Limitation |
/** * 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; }
/** * Parse input structure * * @param array $data * @param \eZ\Publish\Core\REST\Common\Input\ParsingDispatcher $parsingDispatcher * * @return \eZ\Publish\Core\REST\Server\Values\RoleAssignment */ public function parse(array $data, ParsingDispatcher $parsingDispatcher) { if (!array_key_exists('Role', $data)) { throw new Exceptions\Parser("Missing 'Role' element for RoleAssignInput."); } if (!is_array($data['Role']) || !array_key_exists('_href', $data['Role'])) { throw new Exceptions\Parser("Invalid 'Role' element for RoleAssignInput."); } try { $roleId = $this->requestParser->parseHref($data['Role']['_href'], 'roleId'); } catch (Exceptions\InvalidArgumentException $e) { throw new Exceptions\Parser('Invalid format for <Role> reference in <RoleAssignInput>.'); } // @todo XSD says that limitation is mandatory, but roles can be assigned without limitations $limitation = null; if (array_key_exists('limitation', $data) && is_array($data['limitation'])) { $limitation = $this->parserTools->parseLimitation($data['limitation']); } return new RoleAssignment($roleId, $limitation); }
/** * Parse input structure * * @param array $data * @param \eZ\Publish\Core\REST\Common\Input\ParsingDispatcher $parsingDispatcher * * @return \eZ\Publish\API\Repository\Values\User\PolicyCreateStruct */ public function parse(array $data, ParsingDispatcher $parsingDispatcher) { if (!array_key_exists('module', $data)) { throw new Exceptions\Parser("Missing 'module' attribute for PolicyCreate."); } if (!array_key_exists('function', $data)) { throw new Exceptions\Parser("Missing 'function' attribute for PolicyCreate."); } $policyCreate = $this->roleService->newPolicyCreateStruct($data['module'], $data['function']); // @todo XSD says that limitations is mandatory, // but polices can be created without limitations if (array_key_exists('limitations', $data)) { if (!is_array($data['limitations'])) { throw new Exceptions\Parser("Invalid format for 'limitations' in PolicyCreate."); } if (!isset($data['limitations']['limitation']) || !is_array($data['limitations']['limitation'])) { throw new Exceptions\Parser("Invalid format for 'limitations' in PolicyCreate."); } foreach ($data['limitations']['limitation'] as $limitationData) { $policyCreate->addLimitation($this->parserTools->parseLimitation($limitationData)); } } return $policyCreate; }