1 6 7 package org.contineo.actions.documan.util; 8 9 import javax.servlet.http.HttpServletRequest ; 10 import javax.servlet.http.HttpServletResponse ; 11 import javax.servlet.http.HttpSession ; 12 import org.apache.log4j.Level; 13 import org.apache.log4j.Logger; 14 import org.apache.struts.action.Action; 15 import org.apache.struts.action.ActionError; 16 import org.apache.struts.action.ActionErrors; 17 import org.apache.struts.action.ActionForm; 18 import org.apache.struts.action.ActionForward; 19 import org.apache.struts.action.ActionMapping; 20 import org.apache.struts.action.ActionMessage; 21 import org.apache.struts.action.ActionMessages; 22 import org.contineo.admin.Menu; 23 import org.contineo.admin.dao.MenuDAO; 24 import org.contineo.core.FileBean; 25 import org.contineo.core.LoggingManager; 26 import org.contineo.core.SessionManagement; 27 import org.contineo.core.config.SettingConfigurator; 28 29 34 public class MoveDocumentAction extends Action { 35 36 40 private Logger logger; 41 42 43 44 public MoveDocumentAction() { 45 logger = LoggingManager.getLogger(this.getClass()); 46 } 47 48 public ActionForward execute(ActionMapping mapping, 49 ActionForm form, HttpServletRequest request, 50 HttpServletResponse response) { 51 ActionForward actionForward = new ActionForward(); 52 ActionErrors errors = new ActionErrors(); 53 ActionMessages messages = new ActionMessages(); 54 HttpSession session = request.getSession(); 55 if (SessionManagement.isValid(session)) { 56 Menu parent = new Menu(); 57 try { 58 String username = (String )session.getAttribute("authuser"); 59 String newid = request.getParameter("menuid"); 60 int newId = Integer.parseInt(newid); 61 Integer menuid = (Integer )session.getAttribute("moveid"); 62 MenuDAO menuDao = new MenuDAO(); 63 Menu menu = menuDao.findByPrimaryKey(menuid.intValue()); 64 if (menuDao.isReadEnable(menu.getMenuId(), username)) { 65 Menu newmenu = menu.copy(); 66 parent = menuDao.findByPrimaryKey(newId); 67 newmenu.setMenuParent(parent.getMenuId()); 68 newmenu.setMenuPath(parent.getMenuPath() + "/" + parent.getMenuId()); 69 newmenu.setMenuHier(parent.getMenuHier() + 1); 70 boolean stored = menuDao.store(newmenu); 71 if (stored) { 72 SettingConfigurator conf = new SettingConfigurator(); 73 String dir = conf.getValue("docdir") + "/" + menu.getMenuPath() + "/" + menu.getMenuId(); 74 String newdir = conf.getValue("docdir") + "/" + newmenu.getMenuPath() + "/" + newmenu.getMenuId(); 75 FileBean.copyDir(dir, newdir); 76 FileBean.deleteDir(dir); 77 session.removeAttribute("moveid"); 78 session.setAttribute("move", Boolean.valueOf(false)); 79 messages.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("msg.action.movedocument")); 80 } else { 81 errors.add(ActionErrors.GLOBAL_ERROR, new ActionError("errors.action.movedocument")); 82 } 83 actionForward.setPath("/ShowFolderContent.do?menuid=" + parent.getMenuParent()); 84 } else 85 actionForward = mapping.findForward("noaccess"); 86 } catch (Exception e) { 87 if (logger.isEnabledFor(Level.ERROR)) 88 logger.error(e.getMessage()); 89 errors.add(ActionErrors.GLOBAL_ERROR, new ActionError("errors.action.movedocument")); 90 actionForward.setPath("/ShowFolderContent.do?menuid=" + parent.getMenuParent()); 91 } 92 } else 93 actionForward = mapping.findForward("invalid"); 94 return actionForward; 95 } 96 } 97 | Popular Tags |