eZ\Publish\Core\Repository\Helper\RoleDomainMapper::buildDomainPolicyObject PHP Method

buildDomainPolicyObject() public method

Maps provided SPI Policy value object to API Policy value object.
public buildDomainPolicyObject ( eZ\Publish\SPI\Persistence\User\Policy $spiPolicy ) : eZ\Publish\API\Repository\Values\User\Policy | eZ\Publish\API\Repository\Values\User\PolicyDraft
$spiPolicy eZ\Publish\SPI\Persistence\User\Policy
return eZ\Publish\API\Repository\Values\User\Policy | eZ\Publish\API\Repository\Values\User\PolicyDraft
    public function buildDomainPolicyObject(SPIPolicy $spiPolicy)
    {
        $policyLimitations = array();
        if ($spiPolicy->module !== '*' && $spiPolicy->function !== '*' && $spiPolicy->limitations !== '*') {
            foreach ($spiPolicy->limitations as $identifier => $values) {
                $policyLimitations[] = $this->limitationService->getLimitationType($identifier)->buildValue($values);
            }
        }
        $policy = new Policy(array('id' => $spiPolicy->id, 'roleId' => $spiPolicy->roleId, 'module' => $spiPolicy->module, 'function' => $spiPolicy->function, 'limitations' => $policyLimitations));
        // Original ID is set on SPI policy, which means that it's a draft.
        if ($spiPolicy->originalId) {
            $policy = new PolicyDraft(['innerPolicy' => $policy, 'originalId' => $spiPolicy->originalId]);
        }
        return $policy;
    }

Usage Example

Beispiel #1
0
 /**
  * Loads all policies from roles which are assigned to a user or to user groups to which the user belongs.
  *
  * @throws \eZ\Publish\API\Repository\Exceptions\NotFoundException if a user with the given id was not found
  *
  * @param mixed $userId
  *
  * @return \eZ\Publish\API\Repository\Values\User\Policy[]
  */
 public function loadPoliciesByUserId($userId)
 {
     $spiPolicies = $this->userHandler->loadPoliciesByUserId($userId);
     $policies = array();
     foreach ($spiPolicies as $spiPolicy) {
         $policies[] = $this->roleDomainMapper->buildDomainPolicyObject($spiPolicy);
     }
     if (empty($policies)) {
         $this->userHandler->load($userId);
     }
     // For NotFoundException in case userId is invalid
     return $policies;
 }
All Usage Examples Of eZ\Publish\Core\Repository\Helper\RoleDomainMapper::buildDomainPolicyObject