From 22bfcf3a0544a13ace88ef83b69afdd5db5378c3 Mon Sep 17 00:00:00 2001 From: killerber4t Date: Thu, 19 Mar 2020 14:14:54 +0100 Subject: [PATCH] fix-search after leaving group --- .../controller/Gruppen2Controller.java | 2 ++ src/main/java/mops/gruppen2/domain/User.java | 10 +++++--- .../mops/gruppen2/service/GroupService.java | 25 +++++++++++++------ src/main/resources/templates/editMembers.html | 4 +-- 4 files changed, 27 insertions(+), 14 deletions(-) diff --git a/src/main/java/mops/gruppen2/controller/Gruppen2Controller.java b/src/main/java/mops/gruppen2/controller/Gruppen2Controller.java index fa3354d..f220173 100644 --- a/src/main/java/mops/gruppen2/controller/Gruppen2Controller.java +++ b/src/main/java/mops/gruppen2/controller/Gruppen2Controller.java @@ -226,7 +226,9 @@ public class Gruppen2Controller { @PostMapping("/details/members/changeRole") public String changeRole(KeycloakAuthenticationToken token, @RequestParam("group_id") Long groupId, @RequestParam("user_id") String userId) throws EventException { + Account account = keyCloakService.createAccountFromPrincipal(token); controllerService.updateRole(userId, groupId); + if(userId.equals(account.getName())) return "redirect:/gruppen2/details/" + groupId; return "redirect:/gruppen2/details/members/" + groupId; } diff --git a/src/main/java/mops/gruppen2/domain/User.java b/src/main/java/mops/gruppen2/domain/User.java index 08ff119..7b961c4 100644 --- a/src/main/java/mops/gruppen2/domain/User.java +++ b/src/main/java/mops/gruppen2/domain/User.java @@ -3,14 +3,16 @@ package mops.gruppen2.domain; import lombok.AllArgsConstructor; import lombok.EqualsAndHashCode; import lombok.Getter; +import lombok.NoArgsConstructor; @Getter @AllArgsConstructor +@NoArgsConstructor @EqualsAndHashCode(exclude = {"givenname", "familyname", "email"}) public class User { - private final String id; - private final String givenname; - private final String familyname; - private final String email; + private String id; + private String givenname; + private String familyname; + private String email; } diff --git a/src/main/java/mops/gruppen2/service/GroupService.java b/src/main/java/mops/gruppen2/service/GroupService.java index 3b3ff54..f7b5d62 100644 --- a/src/main/java/mops/gruppen2/service/GroupService.java +++ b/src/main/java/mops/gruppen2/service/GroupService.java @@ -1,6 +1,7 @@ package mops.gruppen2.service; import mops.gruppen2.domain.Group; +import mops.gruppen2.domain.User; import mops.gruppen2.domain.dto.EventDTO; import mops.gruppen2.domain.event.Event; import mops.gruppen2.domain.exception.EventException; @@ -66,11 +67,11 @@ public class GroupService { return groups.get(groupId); } - private List removeUserGroups(List groupIds, List userGroups) { - for (Long groupId : userGroups) { - groupIds.remove(groupId); + private List removeUserGroups(List visibleGroups, List userGroups) { + for (Group group : userGroups) { + visibleGroups.remove(group); } - return groupIds; + return visibleGroups; } /** @@ -81,10 +82,18 @@ public class GroupService { * @throws EventException Projektionsfehler */ public List getAllGroupWithVisibilityPublic(String userId) throws EventException { - List groupIds = removeUserGroups(eventRepository.findGroup_idsWhereVisibility(Boolean.TRUE), eventRepository.findGroup_idsWhereUser_id(userId)); - List eventDTOS = eventRepository.findAllEventsOfGroups(groupIds); - List events = eventService.translateEventDTOs(eventDTOS); - return projectEventList(events); + User user = new User(userId,null, null, null); + List eventsVisible = eventService.translateEventDTOs(eventRepository.findAllEventsOfGroups(eventRepository.findGroup_idsWhereVisibility(Boolean.TRUE))); + List visibleGroups = projectEventList(eventsVisible); + List eventsUser = getGroupEvents(eventRepository.findGroup_idsWhereUser_id(userId)); + List groups = projectEventList(eventsUser); + List newGroups = new ArrayList<>(); + for (Group group : groups) { + if (group.getMembers().contains(user)) { + newGroups.add(group); + } + } + return removeUserGroups(visibleGroups, newGroups); } diff --git a/src/main/resources/templates/editMembers.html b/src/main/resources/templates/editMembers.html index edca787..9b2b60e 100644 --- a/src/main/resources/templates/editMembers.html +++ b/src/main/resources/templates/editMembers.html @@ -84,7 +84,7 @@ type="hidden"> - @@ -93,7 +93,7 @@ type="hidden"> -