1 3 package org.contineo.actions.rest; 4 5 import javax.servlet.http.HttpServletResponse ; 6 7 import org.contineo.admin.Menu; 8 import org.contineo.admin.dao.MenuDAO; 9 import org.contineo.apis.rest.HttpStatusCodes; 10 import org.contineo.documan.DeleteItemUtil; 11 12 16 public class DeleteFolderOrDocRESTAction extends RESTAction { 17 18 private final int menuId; 19 20 21 private final boolean deleteFolder; 22 23 24 public DeleteFolderOrDocRESTAction(HttpServletResponse p_response, String p_userName, 25 String requestedRESTUrl, int p_menuId, boolean p_deleteFolder) { 26 super(null, requestedRESTUrl, p_userName, p_response, 27 p_deleteFolder == true ? new String ("DELETE REST/folder/XX: delete folder XX") : 28 new String ("DELETE REST/document/XX: delete document XX")); 29 menuId = p_menuId; 30 deleteFolder = p_deleteFolder; 31 32 processRequest(); 33 } 34 35 @Override 36 protected void processRequest() { 37 MenuDAO menuDao = new MenuDAO(); 39 Menu menu = menuDao.findByPrimaryKey(menuId); 40 if (menu == null) { 41 setHttpStatusCode(HttpStatusCodes.NOT_FOUND); 42 return; 43 } 44 45 int menuType = menu.getMenuType(); 47 if ((menuType == Menu.MENUTYPE_DIRECTORY && deleteFolder == false) || 48 (menuType == Menu.MENUTYPE_FILE && deleteFolder == true)) { 49 setHttpStatusCode(HttpStatusCodes.BAD_REQUEST); 50 return; 51 } 52 53 if (!menuDao.hasWriteAccess(menu, userName)) { 55 setHttpStatusCode(HttpStatusCodes.FORBIDDEN); 56 return; 57 } 58 59 if (DeleteItemUtil.deleteMenu(menuId, userName) == false) { 61 setHttpStatusCode(HttpStatusCodes.INTERNAL_SERVER_ERROR); 62 addLogMessage("Unable to delete document/folder with menu id: " + menuId); 63 return; 64 } 65 66 setHttpStatusCode(HttpStatusCodes.OK); return; 69 } 70 } | Popular Tags |