From 71ea7eec40b19b92a7e3c0f4ff7a440e112a4e32 Mon Sep 17 00:00:00 2001 From: tomvahl Date: Fri, 20 Mar 2020 13:45:40 +0100 Subject: [PATCH 1/2] 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 +
+ +
From 73f6798c2cf95f57fd360ed0dc47bacf9947a09b Mon Sep 17 00:00:00 2001 From: tomvahl Date: Fri, 20 Mar 2020 14:00:41 +0100 Subject: [PATCH 2/2] if group empty gets delete Co-Authored-By: Talha Caliskan --- .../mops/gruppen2/controller/Gruppen2Controller.java | 10 ++++++++-- .../java/mops/gruppen2/service/ControllerService.java | 4 ++-- src/main/resources/templates/editMembers.html | 2 +- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/main/java/mops/gruppen2/controller/Gruppen2Controller.java b/src/main/java/mops/gruppen2/controller/Gruppen2Controller.java index 520f1d8..bc8ef88 100644 --- a/src/main/java/mops/gruppen2/controller/Gruppen2Controller.java +++ b/src/main/java/mops/gruppen2/controller/Gruppen2Controller.java @@ -247,6 +247,9 @@ public class Gruppen2Controller { User user = new User(account.getName(), account.getGivenname(), account.getFamilyname(), account.getEmail()); controllerService.passIfLastAdmin(account, groupId); controllerService.deleteUser(user.getId(), groupId); + if(userService.getGroupById(groupId).getMembers().size() == 0){ + controllerService.deleteGroupEvent(user.getId(), groupId); + } return "redirect:/gruppen2/"; } @@ -255,7 +258,7 @@ public class Gruppen2Controller { 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); + controllerService.deleteGroupEvent(user.getId(), groupId); return "redirect:/gruppen2/"; } @@ -295,9 +298,12 @@ public class Gruppen2Controller { @RolesAllowed({"ROLE_orga", "ROLE_studentin", "ROLE_actuator)"}) @PostMapping("/details/members/deleteUser") - public String deleteUser(KeycloakAuthenticationToken token, @RequestParam("group_id") Long groupId, + public String deleteUser(@RequestParam("group_id") Long groupId, @RequestParam("user_id") String userId) throws EventException { controllerService.deleteUser(userId, groupId); + if(userService.getGroupById(groupId).getMembers().size() == 0){ + controllerService.deleteGroupEvent(userId ,groupId); + } return "redirect:/gruppen2/details/members/" + groupId; } } diff --git a/src/main/java/mops/gruppen2/service/ControllerService.java b/src/main/java/mops/gruppen2/service/ControllerService.java index 4d651d4..0d831ea 100644 --- a/src/main/java/mops/gruppen2/service/ControllerService.java +++ b/src/main/java/mops/gruppen2/service/ControllerService.java @@ -159,8 +159,8 @@ public class ControllerService { eventService.saveEvent(deleteUserEvent); } - public void deleteGroupEvent(User user, Long groupId) { - DeleteGroupEvent deleteGroupEvent = new DeleteGroupEvent(groupId, user.getId()); + public void deleteGroupEvent(String user_id, Long groupId) { + DeleteGroupEvent deleteGroupEvent = new DeleteGroupEvent(groupId, user_id); eventService.saveEvent(deleteGroupEvent); } diff --git a/src/main/resources/templates/editMembers.html b/src/main/resources/templates/editMembers.html index 386374c..a58cc85 100644 --- a/src/main/resources/templates/editMembers.html +++ b/src/main/resources/templates/editMembers.html @@ -99,7 +99,7 @@ type="hidden"> - +