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));
}
/** * @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; }