@Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { HttpSession session = request.getSession(false); User user = (User) session.getAttribute("user"); MessageBox messageBox = new MessageBox(); // Check the permissions. if (user.getRole() == UserRole.ADMIN || user.getRole() == UserRole.EDITOR) { if (request.getParameter("selectionIds") == null) { // The method is called from the chain list page. this.doGet(request, response); } else { // The method is called from the chain delete page. String[] selection = (request.getParameter("selectionIds")).split(","); List<String> selectionList = chainIdsToListOfTitles(selection); for (int i = 0; i < selection.length; i++) { ChainService.removeChain(Long.valueOf(selection[i].trim())); } // Form the success message. messageBox.setTitle("The following chains have been successfully deleted:"); messageBox.setMessages(selectionList); Messager.sendMessage(request, messageBox, MessageSeverity.SUCCESS); response.sendRedirect(request.getContextPath() + "/ChainList"); } } else { // Form the error message. messageBox.setTitle( "Not enough previlegues to perform the operation. Please contact the administrator."); Messager.sendMessage(request, messageBox, MessageSeverity.ERROR); response.sendRedirect(request.getContextPath() + "/ChainList"); } }
/** * Retrieves the title of the chain with the given id and forms a list of titles. * * @param ids - an array of chain ids. * @return a list of chain titles. */ private static List<String> chainIdsToListOfTitles(String[] ids) { List<String> selectionList = new ArrayList<>(); for (String id : ids) { selectionList.add(ChainService.openChain(Long.valueOf(id.trim())).getTitle()); } return selectionList; }