eZ\Publish\Core\REST\Server\Output\ValueObjectVisitor\Policy::visit PHP Method

visit() public method

Visit struct returned by controllers.
public visit ( Visitor $visitor, Generator $generator, Policy | eZ\Publish\API\Repository\Values\User\PolicyDraft $data )
$visitor eZ\Publish\Core\REST\Common\Output\Visitor
$generator eZ\Publish\Core\REST\Common\Output\Generator
$data Policy | eZ\Publish\API\Repository\Values\User\PolicyDraft
    public function visit(Visitor $visitor, Generator $generator, $data)
    {
        $generator->startObjectElement('Policy');
        $visitor->setHeader('Content-Type', $generator->getMediaType($data instanceof PolicyDraft ? 'PolicyDraft' : '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');
        if ($data instanceof PolicyDraft) {
            $generator->startValueElement('originalId', $data->originalId);
            $generator->endValueElement('originalId');
        }
        $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');
    }

Usage Example

Ejemplo n.º 1
0
 /**
  * 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\Core\REST\Server\Values\CreatedPolicy $data
  */
 public function visit(Visitor $visitor, Generator $generator, $data)
 {
     parent::visit($visitor, $generator, $data->policy);
     $visitor->setHeader('Location', $this->router->generate('ezpublish_rest_loadPolicy', array('roleId' => $data->policy->roleId, 'policyId' => $data->policy->id)));
     $visitor->setStatus(201);
 }
Policy