diff --git a/src/main/java/mops/gruppen2/controller/Gruppen2Controller.java b/src/main/java/mops/gruppen2/controller/Gruppen2Controller.java index 0f7ca13..e547bee 100644 --- a/src/main/java/mops/gruppen2/controller/Gruppen2Controller.java +++ b/src/main/java/mops/gruppen2/controller/Gruppen2Controller.java @@ -164,6 +164,7 @@ public class Gruppen2Controller { @PostMapping("/detailsBeitreten") public String joinGroup(KeycloakAuthenticationToken token, Model model, @RequestParam("id") Long groupId) throws EventException { model.addAttribute("account", keyCloakService.createAccountFromPrincipal(token)); + Account account = keyCloakService.createAccountFromPrincipal(token); User user = new User(account.getName(), account.getGivenname(), account.getFamilyname(), account.getEmail()); Group group = userService.getGroupById(groupId); diff --git a/src/main/java/mops/gruppen2/domain/User.java b/src/main/java/mops/gruppen2/domain/User.java index bf6c172..7b961c4 100644 --- a/src/main/java/mops/gruppen2/domain/User.java +++ b/src/main/java/mops/gruppen2/domain/User.java @@ -11,8 +11,8 @@ import lombok.NoArgsConstructor; @EqualsAndHashCode(exclude = {"givenname", "familyname", "email"}) public class User { - private String id; - private String givenname; - private String familyname; - private 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/create.html b/src/main/resources/templates/create.html index 2b93f80..663f4a2 100644 --- a/src/main/resources/templates/create.html +++ b/src/main/resources/templates/create.html @@ -34,8 +34,8 @@

Gruppenerstellung

-
+
+
-
+

-
+

-
+
Mitglied Rolle - Optionen + Optionen - @@ -84,15 +83,16 @@ type="hidden"> - - +
-
@@ -103,6 +103,8 @@ type="button"> Fertig +
+
diff --git a/src/main/resources/templates/error.html b/src/main/resources/templates/error.html index 5ea8655..87383ce 100644 --- a/src/main/resources/templates/error.html +++ b/src/main/resources/templates/error.html @@ -10,7 +10,7 @@ Seite nicht gefunden -
+

UPSI

@@ -31,4 +31,4 @@
- + \ No newline at end of file diff --git a/src/main/resources/templates/index.html b/src/main/resources/templates/index.html index cf38815..6089e2f 100644 --- a/src/main/resources/templates/index.html +++ b/src/main/resources/templates/index.html @@ -45,7 +45,7 @@


-
+

diff --git a/src/main/resources/templates/search.html b/src/main/resources/templates/search.html index 0d41f05..1a9b51c 100644 --- a/src/main/resources/templates/search.html +++ b/src/main/resources/templates/search.html @@ -33,7 +33,7 @@

Gruppensuche

-
+