diff options
| -rw-r--r-- | src/main/java/net/libertacasa/pubsh/web/Docker.java | 1 | ||||
| -rw-r--r-- | src/main/java/net/libertacasa/pubsh/web/WebApplication.java | 21 | ||||
| -rw-r--r-- | src/main/resources/templates/portal.html | 2 | 
3 files changed, 20 insertions, 4 deletions
diff --git a/src/main/java/net/libertacasa/pubsh/web/Docker.java b/src/main/java/net/libertacasa/pubsh/web/Docker.java index a889703..ff81be3 100644 --- a/src/main/java/net/libertacasa/pubsh/web/Docker.java +++ b/src/main/java/net/libertacasa/pubsh/web/Docker.java @@ -15,7 +15,6 @@ import com.github.dockerjava.api.command.ListContainersCmd;  import com.github.dockerjava.api.command.ListImagesCmd;  import com.github.dockerjava.api.command.WaitContainerResultCallback;  import com.github.dockerjava.api.model.Image; -import com.github.dockerjava.api.model.SearchItem;  import com.github.dockerjava.core.DefaultDockerClientConfig;  import com.github.dockerjava.core.DockerClientConfig;  import com.github.dockerjava.core.DockerClientImpl; 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") diff --git a/src/main/resources/templates/portal.html b/src/main/resources/templates/portal.html index 568e4da..33934c3 100644 --- a/src/main/resources/templates/portal.html +++ b/src/main/resources/templates/portal.html @@ -50,7 +50,7 @@  			<td th:text="${container.id}" />  			<td th:text="${container.status}" />  <td> -<form id="deletion_pseudoform" action="#" th:action="@{'/frontend/container/delete/{id}'(id=${container.id})}" th:method="delete" th:containerid="${container.id}" th:containerShaSum="${container.imageId}" th:onsubmit="return confirm('Do you really want to delete the container with ID ' + this.getAttribute('containerid') + ' which is attached to the image with checksum ' + this.getAttribute('containerShaSum') + ' ?');"> +<form id="deletion_pseudoform" action="#" th:action="@{'/frontend/shell/delete/{id}'(id=${container.id})}" th:method="delete" th:containerid="${container.id}" th:containerShaSum="${container.imageId}" th:onsubmit="return confirm('Do you really want to delete the container with ID ' + this.getAttribute('containerid') + ' which is attached to the image with checksum ' + this.getAttribute('containerShaSum') + ' ?');">  <button class="btn btn-danger" id="deletion_submission" type="submit">Delete</button>  </form>  </td>  | 
