public String deleteUser()

in app/src/main/java/com/amazon/aws/partners/saasfactory/pgrls/controller/TenantController.java [219:246]


    public String deleteUser(Authentication authentication, @ModelAttribute User user, BindingResult binding, Model model, final RedirectAttributes redirectAttributes) {
        LOGGER.info("Deleting user " + user.getId());
        String view = null;
        try {
            Tenant authenticatedTenant = (Tenant) authentication.getPrincipal();
            tenantService.deleteUser(user);
            // For this demo, just to show RLS in action, see if the user exists
            if (adminService.userExists(user.getId())) {
                LOGGER.warn("Row Level Security policies prevented " + authenticatedTenant.getIdAsString() + " from deleting user " + user.getId().toString());
                redirectAttributes.addFlashAttribute("css", "danger");
                redirectAttributes.addFlashAttribute("msg", "Row Level Security policies prevented " + authenticatedTenant.getIdAsString() + " from deleting user " + user.getId().toString());
                view = "redirect:/tenant";
            } else {
                LOGGER.info("User delete succeeded");
                redirectAttributes.addFlashAttribute("css", "success");
                redirectAttributes.addFlashAttribute("msg", "User deleted");
                // Add the tenant back into model for the redirect
                redirectAttributes.addFlashAttribute("selectedTenant", authenticatedTenant.getId());
                view = "redirect:/tenant";
            }
        } catch (Exception e) {
            LOGGER.error("Error deleting user", e);
            model.addAttribute("css", "danger");
            model.addAttribute("msg", "Failed to delete user: " + e.getMessage());
            view = "deleteUser";
        }
        return view;
    }