public function getRoleAssignments(APIRole $role)
{
if ($this->repository->hasAccess('role', 'read') !== true) {
throw new UnauthorizedException('role', 'read');
}
$userService = $this->repository->getUserService();
$spiRoleAssignments = $this->userHandler->loadRoleAssignmentsByRoleId($role->id);
$roleAssignments = array();
foreach ($spiRoleAssignments as $spiRoleAssignment) {
// First check if the Role is assigned to a User
// If no User is found, see if it belongs to a UserGroup
try {
$user = $userService->loadUser($spiRoleAssignment->contentId);
$roleAssignments[] = $this->roleDomainMapper->buildDomainUserRoleAssignmentObject($spiRoleAssignment, $user, $role);
} catch (APINotFoundException $e) {
try {
$userGroup = $userService->loadUserGroup($spiRoleAssignment->contentId);
$roleAssignments[] = $this->roleDomainMapper->buildDomainUserGroupRoleAssignmentObject($spiRoleAssignment, $userGroup, $role);
} catch (APINotFoundException $e) {
// Do nothing
}
}
}
return $roleAssignments;
}