eZ\Publish\Core\REST\Client\RoleService::addPolicy PHP Метод

addPolicy() публичный Метод

Adds a new policy to the role.
Устаревший: since 6.0, use {@see \addPolicyByRoleDraft}
public addPolicy ( eZ\Publish\API\Repository\Values\User\Role $role, eZ\Publish\API\Repository\Values\User\PolicyCreateStruct $policyCreateStruct ) : eZ\Publish\API\Repository\Values\User\Role
$role eZ\Publish\API\Repository\Values\User\Role
$policyCreateStruct eZ\Publish\API\Repository\Values\User\PolicyCreateStruct
Результат eZ\Publish\API\Repository\Values\User\Role
    public function addPolicy(APIRole $role, APIPolicyCreateStruct $policyCreateStruct)
    {
        $values = $this->requestParser->parse('role', $role->id);
        $inputMessage = $this->outputVisitor->visit($policyCreateStruct);
        $inputMessage->headers['Accept'] = $this->outputVisitor->getMediaType('Policy');
        $result = $this->client->request('POST', $this->requestParser->generate('policies', array('role' => $values['role'])), $inputMessage);
        $createdPolicy = $this->inputDispatcher->parse($result);
        // @todo Workaround for missing roleId in Policy XSD definition
        $createdPolicyArray = array('id' => $createdPolicy->id, 'roleId' => $role->id, 'module' => $createdPolicy->module, 'function' => $createdPolicy->function);
        $createdPolicy = new Policy($createdPolicyArray);
        $existingPolicies = $role->getPolicies();
        $existingPolicies[] = $createdPolicy;
        return new Role(array('id' => $role->id, 'identifier' => $role->identifier), $existingPolicies);
    }