From 71ea7eec40b19b92a7e3c0f4ff7a440e112a4e32 Mon Sep 17 00:00:00 2001 From: tomvahl Date: Fri, 20 Mar 2020 13:45:40 +0100 Subject: [PATCH] add DeleteGoup function Co-Authored-By: Talha Caliskan --- .../mops/gruppen2/controller/Gruppen2Controller.java | 12 ++++++++++++ src/main/java/mops/gruppen2/domain/event/Event.java | 1 + .../java/mops/gruppen2/service/GroupService.java | 6 ++++++ src/main/resources/templates/detailsMember.html | 6 ++++++ 4 files changed, 25 insertions(+) diff --git a/src/main/java/mops/gruppen2/controller/Gruppen2Controller.java b/src/main/java/mops/gruppen2/controller/Gruppen2Controller.java index bea3010..520f1d8 100644 --- a/src/main/java/mops/gruppen2/controller/Gruppen2Controller.java +++ b/src/main/java/mops/gruppen2/controller/Gruppen2Controller.java @@ -174,6 +174,9 @@ public class Gruppen2Controller { User user = new User(account.getName(), account.getGivenname(), account.getFamilyname(), account.getEmail()); Long parentId = group.getParent(); Group parent = new Group(); + if(group.getTitle() == null){ + throw new GroupNotFoundException(this.getClass().toString()); + } if (parentId != null) { parent = userService.getGroupById(parentId); } @@ -247,6 +250,15 @@ public class Gruppen2Controller { return "redirect:/gruppen2/"; } + @RolesAllowed({"ROLE_orga", "ROLE_studentin", "ROLE_actuator"}) + @PostMapping("/deleteGroup") + public String pDeleteGroup(KeycloakAuthenticationToken token, @RequestParam("group_id") Long groupId){ + Account account = keyCloakService.createAccountFromPrincipal(token); + User user = new User(account.getName(), account.getGivenname(), account.getFamilyname(), account.getEmail()); + controllerService.deleteGroupEvent(user, groupId); + return "redirect:/gruppen2/"; + } + @RolesAllowed({"ROLE_orga", "ROLE_studentin", "ROLE_actuator)"}) @GetMapping("/details/members/{id}") public String editMembers(Model model, KeycloakAuthenticationToken token, @PathVariable("id") Long groupId) throws EventException { diff --git a/src/main/java/mops/gruppen2/domain/event/Event.java b/src/main/java/mops/gruppen2/domain/event/Event.java index dd1a886..1642c1c 100644 --- a/src/main/java/mops/gruppen2/domain/event/Event.java +++ b/src/main/java/mops/gruppen2/domain/event/Event.java @@ -21,6 +21,7 @@ import mops.gruppen2.domain.exception.GroupIdMismatchException; @JsonSubTypes.Type(value = UpdateGroupDescriptionEvent.class, name = "UpdateGroupDescriptionEvent"), @JsonSubTypes.Type(value = UpdateGroupTitleEvent.class, name = "UpdateGroupTitleEvent"), @JsonSubTypes.Type(value = UpdateRoleEvent.class, name = "UpdateRoleEvent"), + @JsonSubTypes.Type(value = DeleteGroupEvent.class, name = "DeleteGroupEvent") }) @Getter @NoArgsConstructor diff --git a/src/main/java/mops/gruppen2/service/GroupService.java b/src/main/java/mops/gruppen2/service/GroupService.java index fc9362c..69e6ddc 100644 --- a/src/main/java/mops/gruppen2/service/GroupService.java +++ b/src/main/java/mops/gruppen2/service/GroupService.java @@ -102,6 +102,9 @@ public class GroupService { List visibleGroups = projectEventList(eventsVisible); List visibleLectures = new ArrayList<>(); for (Group group : visibleGroups) { + if(group.getType() == null){ + continue; + } if (group.getType().equals(GroupType.LECTURE)) { visibleLectures.add(group); } @@ -121,6 +124,9 @@ public class GroupService { public List findGroupWith(String search, Account account) throws EventException { List groups = new ArrayList<>(); for (Group group : getAllGroupWithVisibilityPublic(account.getName())) { + if(group.getType() == null){ + continue; + } if (group.getTitle().toLowerCase().contains(search.toLowerCase()) || group.getDescription().toLowerCase().contains(search.toLowerCase())) { groups.add(group); } diff --git a/src/main/resources/templates/detailsMember.html b/src/main/resources/templates/detailsMember.html index ec34e6a..157649a 100644 --- a/src/main/resources/templates/detailsMember.html +++ b/src/main/resources/templates/detailsMember.html @@ -59,6 +59,12 @@ type="submit">Gruppe verlassen +
+ +