1 6 7 package org.contineo.actions.documan.util; 8 9 import java.util.ArrayList ; 10 import java.util.Collection ; 11 import java.util.Iterator ; 12 13 import javax.servlet.http.HttpServletRequest ; 14 import javax.servlet.http.HttpServletResponse ; 15 import javax.servlet.http.HttpSession ; 16 17 import org.apache.log4j.Level; 18 import org.apache.log4j.Logger; 19 import org.apache.struts.action.Action; 20 import org.apache.struts.action.ActionError; 21 import org.apache.struts.action.ActionErrors; 22 import org.apache.struts.action.ActionForm; 23 import org.apache.struts.action.ActionForward; 24 import org.apache.struts.action.ActionMapping; 25 import org.apache.struts.action.ActionMessage; 26 import org.apache.struts.action.ActionMessages; 27 import org.contineo.admin.ExtMenu; 28 import org.contineo.admin.Menu; 29 import org.contineo.admin.dao.MenuDAO; 30 import org.contineo.core.FileBean; 31 import org.contineo.core.LoggingManager; 32 import org.contineo.core.SessionManagement; 33 import org.contineo.core.config.SettingConfigurator; 34 import org.contineo.documan.DeleteItemUtil; 35 import org.contineo.documan.Document; 36 import org.contineo.documan.dao.DocumentDAO; 37 41 public class DeleteItemAction extends Action{ 42 43 47 private Logger logger; 48 49 50 51 public DeleteItemAction() { 52 logger = LoggingManager.getLogger(this.getClass()); 53 } 54 55 58 public ActionForward execute(ActionMapping mapping, 59 ActionForm form, HttpServletRequest request, 60 HttpServletResponse response) { 61 ActionForward actionForward = new ActionForward(); 62 ActionErrors errors = new ActionErrors(); 63 ActionMessages messages = new ActionMessages(); 64 HttpSession session = request.getSession(); 65 if (SessionManagement.isValid(session)) { 66 String menuid = request.getParameter("menuid"); 67 MenuDAO mdao = new MenuDAO(); 68 String userName = (String )session.getAttribute("authuser"); 69 int parentid = -1; 70 try { 71 boolean sqlop = true; 72 int id = Integer.parseInt(menuid); 73 if (mdao.isWriteEnable(id, userName)) { 74 Menu menu = mdao.findByPrimaryKey(id); 76 parentid = menu.getMenuParent(); 77 sqlop = DeleteItemUtil.deleteMenu(id, userName); 78 79 80 Collection <ExtMenu> coll2 = new ArrayList <ExtMenu>(); 81 Collection coll = mdao.findByUserName(userName, parentid); 82 Iterator iter = coll.iterator(); 83 SettingConfigurator settings = new SettingConfigurator(); 84 String docpath = settings.getValue("docdir"); 85 MenuDAO menuDao = new MenuDAO(); 86 while (iter.hasNext()) { 87 Menu m = (Menu)iter.next(); 88 ExtMenu xmenu = new ExtMenu(m); 89 90 int size = 0; 92 if (m.getMenuType() == 5) { 93 long sz = FileBean.getSize(docpath + "/" + m.getMenuPath() + "/" + m.getMenuId() + "/" + m.getMenuRef()); 94 sz = sz/1024; 95 size = (int)sz; 96 } else { 97 size = menuDao.findByUserName(userName, m.getMenuId()).size(); 98 } 99 xmenu.setSize(size); 100 101 boolean writable = false; 103 if (menuDao.isWriteEnable(m.getMenuId(), userName)) { 104 writable = true; 105 } else { 106 writable = false; 107 } 108 xmenu.setWritable(writable); 109 110 if (m.getMenuType() == 5) { 114 DocumentDAO ddao = new DocumentDAO(); 115 Document doc = ddao.findByMenuId(m.getMenuId()); 116 117 if (doc != null) { 118 xmenu.setDocStatus(doc.getDocStatus()); 119 xmenu.setCheckoutUser(doc.getCheckoutUser()); 120 } 121 } 122 123 coll2.add(xmenu); 124 } 125 request.setAttribute("menus", coll2); 126 boolean right = mdao.isWriteEnable(parentid, userName); 127 int iright = 0; 128 if (right) 129 iright = 1; 130 request.setAttribute("right", new Integer (iright)); 131 Menu parent = mdao.findMenuByMenuId(parentid); 132 request.setAttribute("parent", parent); 133 Collection parents = parent.getParents(); 134 request.setAttribute("parents", parents); 135 if (!sqlop) 136 errors.add(ActionErrors.GLOBAL_ERROR, new ActionError("errors.action.deleteitem")); 137 else 138 messages.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("msg.action.deleteitem")); 139 actionForward = mapping.findForward("foldercontent"); 140 } else 141 actionForward = mapping.findForward("noaccess"); 142 } catch (Exception e) { 143 if (logger.isEnabledFor(Level.ERROR)) 144 logger.error(e.getMessage()); 145 errors.add(ActionErrors.GLOBAL_ERROR, new ActionError("errors.action.deleteitem")); 146 actionForward = mapping.findForward("foldercontent"); 147 } 148 saveErrors(request, errors); 149 saveMessages(request, messages); 150 } else 151 actionForward = mapping.findForward("invalid"); 152 return actionForward; 153 } 154 } | Popular Tags |