summaryrefslogtreecommitdiffstats
path: root/src/main/java/net/libertacasa/pubsh/web/WebApplication.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/net/libertacasa/pubsh/web/WebApplication.java')
-rw-r--r--src/main/java/net/libertacasa/pubsh/web/WebApplication.java21
1 files changed, 19 insertions, 2 deletions
diff --git a/src/main/java/net/libertacasa/pubsh/web/WebApplication.java b/src/main/java/net/libertacasa/pubsh/web/WebApplication.java
index 4c06c29..c9cbe07 100644
--- a/src/main/java/net/libertacasa/pubsh/web/WebApplication.java
+++ b/src/main/java/net/libertacasa/pubsh/web/WebApplication.java
@@ -157,8 +157,7 @@ public class WebApplication {
System.out.printf("Deletion triggered for ID %s by %s (%s)\n", id, userid, username);
- //Docker.deleteContainer(id);
- Docker.deleteShell(username, id); //to-do: move to separate mapping
+ Docker.deleteContainer(id);
return("redirect:/portal");
}
@@ -248,6 +247,24 @@ public class WebApplication {
}
return("redirect:/portal");
+ }
+
+ @DeleteMapping("/frontend/shell/delete/{id}")
+ public static String deleteShell(@PathVariable String id, HttpServletRequest request, RedirectAttributes redirectAttributes) {
+ // [Start] This block should move to a logging method. It's only job is to print user details to the console.
+ KeycloakAuthenticationToken principal = (KeycloakAuthenticationToken) request.getUserPrincipal();
+ String username= null;
+ String userid = principal.getName();
+ IDToken token = principal.getAccount().getKeycloakSecurityContext().getIdToken();
+ Map<String, Object> customClaims = token.getOtherClaims();
+ username = String.valueOf(customClaims.get("username"));
+ // [End]
+
+ System.out.printf("Deletion triggered for ID %s by %s (%s)\n", id, userid, username);
+
+ Docker.deleteShell(username, id);
+
+ return("redirect:/portal");
}
@GetMapping(path = "/logout")