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

buildDomainUserRoleAssignmentObject() public method

Builds the API UserRoleAssignment object from provided SPI RoleAssignment object.
public buildDomainUserRoleAssignmentObject ( eZ\Publish\SPI\Persistence\User\RoleAssignment $spiRoleAssignment, eZ\Publish\API\Repository\Values\User\User $user, eZ\Publish\API\Repository\Values\User\Role $role ) : eZ\Publish\API\Repository\Values\User\UserRoleAssignment
$spiRoleAssignment eZ\Publish\SPI\Persistence\User\RoleAssignment
$user eZ\Publish\API\Repository\Values\User\User
$role eZ\Publish\API\Repository\Values\User\Role
return eZ\Publish\API\Repository\Values\User\UserRoleAssignment
    public function buildDomainUserRoleAssignmentObject(SPIRoleAssignment $spiRoleAssignment, User $user, APIRole $role)
    {
        $limitation = null;
        if (!empty($spiRoleAssignment->limitationIdentifier)) {
            $limitation = $this->limitationService->getLimitationType($spiRoleAssignment->limitationIdentifier)->buildValue($spiRoleAssignment->values);
        }
        return new UserRoleAssignment(array('id' => $spiRoleAssignment->id, 'limitation' => $limitation, 'role' => $role, 'user' => $user));
    }

Usage Example

Esempio n. 1
0
 /**
  * @see \eZ\Publish\API\Repository\RoleService::getRoleAssignmentsForUser()
  */
 public function getRoleAssignmentsForUser(User $user, $inherited = false)
 {
     if ($this->repository->hasAccess('role', 'read') !== true) {
         throw new UnauthorizedException('role', 'read');
     }
     $roleAssignments = array();
     $spiRoleAssignments = $this->userHandler->loadRoleAssignmentsByGroupId($user->id, $inherited);
     foreach ($spiRoleAssignments as $spiRoleAssignment) {
         $role = $this->loadRole($spiRoleAssignment->roleId);
         if (!$inherited || $spiRoleAssignment->contentId == $user->id) {
             $roleAssignments[] = $this->roleDomainMapper->buildDomainUserRoleAssignmentObject($spiRoleAssignment, $user, $role);
         } else {
             $userGroup = $this->repository->getUserService()->loadUserGroup($spiRoleAssignment->contentId);
             $roleAssignments[] = $this->roleDomainMapper->buildDomainUserGroupRoleAssignmentObject($spiRoleAssignment, $userGroup, $role);
         }
     }
     return $roleAssignments;
 }