Skip to content
Snippets Groups Projects

Remove blocked role from person page

2 files
+ 25
6
Compare changes
  • Side-by-side
  • Inline

Files

@@ -17,11 +17,14 @@
*/
package nl.tudelft.portal.controller;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import nl.tudelft.labracore.api.EditionControllerApi;
import nl.tudelft.labracore.api.PersonControllerApi;
import nl.tudelft.labracore.api.dto.PersonPatchDTO;
import nl.tudelft.labracore.api.dto.PersonSummaryDTO;
import nl.tudelft.labracore.api.dto.*;
import nl.tudelft.labracore.lib.security.user.AuthenticatedPerson;
import nl.tudelft.labracore.lib.security.user.Person;
@@ -37,6 +40,8 @@ public class PersonController {
@Autowired
private PersonControllerApi personApi;
@Autowired
private EditionControllerApi editionApi;
/**
* Gets the currently authenticated person.
@@ -58,7 +63,21 @@ public class PersonController {
@GetMapping("{id}")
@PreAuthorize("@authorisationService.hasPersonAccess(#id)")
public String getPerson(@PathVariable Long id, Model model) {
model.addAttribute("person", personApi.getPersonById(id).block());
PersonDetailsDTO person = personApi.getPersonById(id).block();
List<RoleEditionLayer1DTO> roles = person.getRoles().stream()
.filter(r -> r.getType() != RoleEditionLayer1DTO.TypeEnum.BLOCKED)
.collect(Collectors.toList());
List<EditionDetailsDTO> editions = roles.isEmpty() ? Collections.emptyList()
: editionApi
.getEditionsById(
roles.stream().map(e -> e.getEdition().getId()).collect(Collectors.toList()))
.collectList().block();
Map<Long, CourseSummaryDTO> courseMap = editions.stream()
.collect(Collectors.toMap(EditionDetailsDTO::getId, EditionDetailsDTO::getCourse));
model.addAttribute("person", person);
model.addAttribute("roles", roles);
model.addAttribute("courses", courseMap);
return "person/view";
}
Loading