diff --git a/src/main/java/mops/gruppen2/controller/Gruppen2Controller.java b/src/main/java/mops/gruppen2/controller/Gruppen2Controller.java index a6bdcca..842870d 100644 --- a/src/main/java/mops/gruppen2/controller/Gruppen2Controller.java +++ b/src/main/java/mops/gruppen2/controller/Gruppen2Controller.java @@ -99,9 +99,10 @@ public class Gruppen2Controller { @RolesAllowed({"ROLE_orga", "ROLE_studentin", "ROLE_actuator"}) @GetMapping("/findGroup") public String findGroup(KeycloakAuthenticationToken token, Model model, @RequestParam(value = "suchbegriff", required = false) String suchbegriff) throws EventException { + Account account = keyCloakService.createAccountFromPrincipal(token); List groupse = new ArrayList<>(); if (suchbegriff != null) { - groupse = groupService.findGroupWith(suchbegriff); + groupse = groupService.findGroupWith(suchbegriff,account); } model.addAttribute("account", keyCloakService.createAccountFromPrincipal(token)); model.addAttribute("gruppen", groupse); diff --git a/src/main/java/mops/gruppen2/service/GroupService.java b/src/main/java/mops/gruppen2/service/GroupService.java index e6adcb3..ec3c4e6 100644 --- a/src/main/java/mops/gruppen2/service/GroupService.java +++ b/src/main/java/mops/gruppen2/service/GroupService.java @@ -6,6 +6,7 @@ import mops.gruppen2.domain.Group; import mops.gruppen2.domain.Visibility; import mops.gruppen2.domain.event.Event; import mops.gruppen2.repository.EventRepository; +import mops.gruppen2.security.Account; import org.springframework.stereotype.Service; import java.util.ArrayList; @@ -71,15 +72,21 @@ public class GroupService { return groups.get(group_id); } + private List removeUserGroups(List group_ids, List user_groups) { + for (Long group_id: user_groups) { + group_ids.remove(group_id); + } + return group_ids; + } + /** - * sucht alle Zeilen in der DB wo die Visibility gleich true ist und wandelt diese in - * eine Liste von Gruppen + * sucht alle Zeilen in der DB wo die Visibility true ist und entfernt alle Gruppen des Users. + * Erstellt eine Liste aus Gruppen. * @return * @throws EventException */ - - public List getAllGroupWithVisibilityPublic() throws EventException { - List group_ids = eventRepository.findGroup_idsWhereVisibility(Boolean.TRUE); + public List getAllGroupWithVisibilityPublic(String user_id) throws EventException { + List group_ids = removeUserGroups(eventRepository.findGroup_idsWhereVisibility(Boolean.TRUE), eventRepository.findGroup_idsWhereUser_id(user_id)); List eventDTOS = eventRepository.findAllEventsOfGroups(group_ids); List events = eventService.translateEventDTOs(eventDTOS); List groups = projectEventList(events); @@ -94,10 +101,10 @@ public class GroupService { * @return * @throws EventException */ - public List findGroupWith(String search) throws EventException { + public List findGroupWith(String search, Account account) throws EventException { List groups = new ArrayList<>(); - for (Group group: getAllGroupWithVisibilityPublic()) { - if (group.getTitle().contains(search)|| group.getDescription().contains(search)){ + for (Group group: getAllGroupWithVisibilityPublic(account.getName())) { + if (group.getTitle().toLowerCase().contains(search.toLowerCase()) || group.getDescription().toLowerCase().contains(search.toLowerCase())){ groups.add(group); } }