/** * Visit struct returned by controllers. * * @param \eZ\Publish\Core\REST\Common\Output\Visitor $visitor * @param \eZ\Publish\Core\REST\Common\Output\Generator $generator * @param \eZ\Publish\API\Repository\Values\User\Policy $data */ public function visit(Visitor $visitor, Generator $generator, $data) { $generator->startObjectElement('Policy'); $visitor->setHeader('Content-Type', $generator->getMediaType('Policy')); $visitor->setHeader('Accept-Patch', $generator->getMediaType('PolicyUpdate')); $generator->startAttribute('href', $this->router->generate('ezpublish_rest_loadPolicy', array('roleId' => $data->roleId, 'policyId' => $data->id))); $generator->endAttribute('href'); $generator->startValueElement('id', $data->id); $generator->endValueElement('id'); $generator->startValueElement('module', $data->module); $generator->endValueElement('module'); $generator->startValueElement('function', $data->function); $generator->endValueElement('function'); $limitations = $data->getLimitations(); if (!empty($limitations)) { $generator->startHashElement('limitations'); $generator->startList('limitation'); foreach ($limitations as $limitation) { $this->visitLimitation($generator, $limitation); } $generator->endList('limitation'); $generator->endHashElement('limitations'); } $generator->endObjectElement('Policy'); }
/** * @return \eZ\Publish\API\Repository\Values\User\Limitation[] */ public function getLimitations() { return $this->innerPolicy->getLimitations(); }