eZ\Publish\Core\REST\Server\Controller\Role::addPolicy PHP Method

addPolicy() public method

Adds a policy to role.
public addPolicy ( $roleId, Request $request ) : CreatedPolicy
$roleId int ID of a role or a role draft
$request Symfony\Component\HttpFoundation\Request
return eZ\Publish\Core\REST\Server\Values\CreatedPolicy
    public function addPolicy($roleId, Request $request)
    {
        $createStruct = $this->inputDispatcher->parse(new Message(array('Content-Type' => $request->headers->get('Content-Type')), $request->getContent()));
        try {
            // First try to treat $roleId as a role draft ID.
            $role = $this->roleService->addPolicyByRoleDraft($this->roleService->loadRoleDraft($roleId), $createStruct);
        } catch (NotFoundException $e) {
            // Then try to treat $roleId as a role ID.
            $role = $this->roleService->addPolicy($this->roleService->loadRole($roleId), $createStruct);
        } catch (LimitationValidationException $e) {
            throw new BadRequestException($e->getMessage());
        }
        return new Values\CreatedPolicy(array('policy' => $this->getLastAddedPolicy($role)));
    }