parseLimitation() public method

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
Esempio n. 1
0
 /**
  * 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;
 }