From ef00c42f6fe5a616ae528dd6c9af9e8322286133 Mon Sep 17 00:00:00 2001 From: Christoph Date: Fri, 27 Mar 2020 13:45:11 +0100 Subject: [PATCH] fix invite Co-authored-by: Christoph --- .../gruppen2/controller/WebController.java | 23 +++++- src/main/resources/templates/joinprivate.html | 81 +++++++++++++++++++ 2 files changed, 100 insertions(+), 4 deletions(-) create mode 100644 src/main/resources/templates/joinprivate.html diff --git a/src/main/java/mops/gruppen2/controller/WebController.java b/src/main/java/mops/gruppen2/controller/WebController.java index 4aa88b7..7a67a7a 100644 --- a/src/main/java/mops/gruppen2/controller/WebController.java +++ b/src/main/java/mops/gruppen2/controller/WebController.java @@ -3,6 +3,7 @@ package mops.gruppen2.controller; import mops.gruppen2.domain.Group; import mops.gruppen2.domain.Role; import mops.gruppen2.domain.User; +import mops.gruppen2.domain.Visibility; import mops.gruppen2.domain.exception.EventException; import mops.gruppen2.domain.exception.PageNotFoundException; import mops.gruppen2.security.Account; @@ -271,8 +272,7 @@ public class WebController { //TODO: Muss post-mapping sein @RolesAllowed({"ROLE_orga", "ROLE_studentin", "ROLE_actuator"}) - @PostMapping("/acceptinvite/{link}") - @CacheEvict(value = "groups", allEntries = true) + @GetMapping("/acceptinvite/{link}") public String acceptInvite(KeycloakAuthenticationToken token, Model model, @PathVariable("link") String link) throws EventException { @@ -281,9 +281,24 @@ public class WebController { validationService.checkGroup(group.getTitle()); model.addAttribute("group", group); - controllerService.addUser(keyCloakService.createAccountFromPrincipal(token), group.getId()); + //controllerService.addUser(keyCloakService.createAccountFromPrincipal(token), group.getId()); - return "redirect:/gruppen2/details/" + group.getId(); + if (group.getVisibility() == Visibility.PUBLIC) { + return "redirect:/gruppen2/details/" + group.getId(); + } + + return "joinprivate"; + } + + @RolesAllowed({"ROLE_orga", "ROLE_studentin", "ROLE_actuator"}) + @PostMapping("/acceptinvite") + @CacheEvict(value = "groups", allEntries = true) + public String postAcceptInvite(KeycloakAuthenticationToken token, + @RequestParam("id") String groupId) { + + controllerService.addUser(keyCloakService.createAccountFromPrincipal(token), UUID.fromString(groupId)); + + return "redirect:/gruppen2/"; } @RolesAllowed({"ROLE_orga", "ROLE_studentin", "ROLE_actuator"}) diff --git a/src/main/resources/templates/joinprivate.html b/src/main/resources/templates/joinprivate.html new file mode 100644 index 0000000..c9b5832 --- /dev/null +++ b/src/main/resources/templates/joinprivate.html @@ -0,0 +1,81 @@ + + + + + Gruppendetails + + + + + +
+ +
+
+
+
+
+
+

+

Möchtest du dieser privaten Gruppe beitreten?

+
+

+
+
+
+
+ + + Ich will das nicht. + +
+
+
+
+
+
+
+

Mitglieder

+
+

+ + von maximal + + Benutzern. +

+

unbegrenzte Teilnehmeranzahl

+
+
+
+
+
+
+ +