1 16 package com.blandware.atleap.webapp.action.core.menuItem; 17 18 import com.blandware.atleap.common.Constants; 19 import com.blandware.atleap.model.core.MenuItem; 20 import com.blandware.atleap.service.core.MenuManager; 21 import com.blandware.atleap.webapp.action.core.BaseAction; 22 import com.blandware.atleap.webapp.form.MenuItemForm; 23 import com.blandware.atleap.webapp.util.core.CacheUtil; 24 import com.blandware.atleap.webapp.util.core.WebappConstants; 25 import org.apache.commons.validator.GenericValidator; 26 import org.apache.struts.action.ActionForm; 27 import org.apache.struts.action.ActionForward; 28 import org.apache.struts.action.ActionMapping; 29 import org.apache.struts.action.ActionMessage; 30 import org.apache.struts.action.ActionMessages; 31 32 import javax.servlet.http.HttpServletRequest ; 33 import javax.servlet.http.HttpServletResponse ; 34 35 57 public final class DeleteMenuItemAction extends BaseAction { 58 67 public ActionForward execute(ActionMapping mapping, ActionForm form, 68 HttpServletRequest request, HttpServletResponse response) throws Exception { 69 70 MenuItemForm menuItemForm = (MenuItemForm) form; 71 Long ownerId = null; 72 if ( !GenericValidator.isBlankOrNull(menuItemForm.getOwnerId()) ) { 73 ownerId = Long.valueOf(menuItemForm.getOwnerId()); 74 } else { 75 if ( log.isWarnEnabled() ) { 76 log.warn("Missing owner ID. Returning to index..."); 77 } 78 return mapping.findForward("admin"); 79 } 80 81 request.getSession().setAttribute(WebappConstants.OWNER_ID_KEY, ownerId); 82 83 Long menuItemId = null; 84 if ( !GenericValidator.isBlankOrNull(menuItemForm.getId()) ) { 85 menuItemId = Long.valueOf(menuItemForm.getId()); 86 } else { 87 if ( log.isWarnEnabled() ) { 88 log.warn("Missing menu item ID. Returning to list"); 89 } 90 return mapping.findForward("listMenuItems"); 91 } 92 93 MenuManager menuManager = (MenuManager) getBean(Constants.MENU_MANAGER_BEAN); 94 95 MenuItem menuItem = menuManager.retrieveMenuItem(menuItemId); 97 98 if ( menuItem == null ) { 100 ActionMessages errors = new ActionMessages(); 102 errors.add("menuItemNotFound", new ActionMessage("core.menuItem.errors.notFound")); 103 saveErrors(request, errors); 104 return mapping.findForward("listMenuItems"); 105 } 106 107 if ( menuItem.isRedefinition() || !menuItem.isDynamic() || !menuItem.getOwner().getId().equals(ownerId) ) { 108 if ( log.isWarnEnabled() ) { 110 log.warn("Tried to delete item, which is hardcoded or defined on another layer. It is prohibited. Returning to list."); 111 } 112 ActionMessages errors = new ActionMessages(); 113 errors.add("menuItemCannotDelete", new ActionMessage("core.menuItem.errors.cannotDelete")); 114 saveErrors(request, errors); 115 return mapping.findForward("listMenuItems"); 116 } 117 menuManager.deleteMenuItem(menuItemId); 118 119 CacheUtil cacheUtil = CacheUtil.getInstance(request); 121 cacheUtil.flushMenuCache(); 122 cacheUtil.flushContentPageCache(); 123 124 return mapping.findForward("listMenuItems"); 125 } 126 127 128 } | Popular Tags |