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.model.core.Role; 21 import com.blandware.atleap.service.core.MenuManager; 22 import com.blandware.atleap.service.core.RoleManager; 23 import com.blandware.atleap.webapp.action.core.BaseAction; 24 import com.blandware.atleap.webapp.form.core.SelectRolesForm; 25 import com.blandware.atleap.webapp.util.core.WebappConstants; 26 import org.apache.commons.validator.GenericValidator; 27 import org.apache.struts.action.ActionForm; 28 import org.apache.struts.action.ActionForward; 29 import org.apache.struts.action.ActionMapping; 30 import org.apache.struts.action.ActionMessage; 31 import org.apache.struts.action.ActionMessages; 32 33 import javax.servlet.http.HttpServletRequest ; 34 import javax.servlet.http.HttpServletResponse ; 35 import java.util.ArrayList ; 36 import java.util.Iterator ; 37 import java.util.List ; 38 39 57 public final class CallAssignMenuItemRolesAction extends BaseAction { 58 67 public ActionForward execute(ActionMapping mapping, ActionForm form, 68 HttpServletRequest request, HttpServletResponse response) throws Exception { 69 70 Long ownerId = null; 71 if ( !GenericValidator.isBlankOrNull(request.getParameter("ownerId")) ) { 72 ownerId = Long.valueOf(request.getParameter("ownerId")); 73 } else if ( request.getSession().getAttribute(WebappConstants.OWNER_ID_KEY) != null ) { 74 ownerId = (Long ) request.getSession().getAttribute(WebappConstants.OWNER_ID_KEY); 75 } else { 76 if ( log.isWarnEnabled() ) { 77 log.warn("Missing owner ID. Returning to index..."); 78 } 79 return mapping.findForward("admin"); 80 } 81 82 request.getSession().setAttribute(WebappConstants.OWNER_ID_KEY, ownerId); 83 84 Long menuItemId = null; 85 if ( request.getParameter("menuItemId") != null ) { 86 menuItemId = Long.valueOf(request.getParameter("menuItemId")); 87 } else if ( request.getAttribute(WebappConstants.MENU_ITEM_ID_KEY) != null ) { 88 menuItemId = (Long ) request.getAttribute(WebappConstants.MENU_ITEM_ID_KEY); 89 } else { 90 if ( log.isWarnEnabled() ) { 91 log.warn("Missing content page ID. Returning to list..."); 92 } 93 return mapping.findForward("listMenuItems"); 94 } 95 96 SelectRolesForm selectRolesForm = (SelectRolesForm) form; 97 MenuManager menuManager = (MenuManager) getBean(Constants.MENU_MANAGER_BEAN); 98 MenuItem menuItem = menuManager.retrieveMenuItem(menuItemId); 99 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 selectRolesForm.setVersion(menuItem.getVersion().toString()); 108 109 List menuItemRoles = new ArrayList (); 110 for ( Iterator i = menuItem.getRoles().iterator(); i.hasNext(); ) { 111 Role role = (Role) i.next(); 112 menuItemRoles.add(role); 113 } 114 115 RoleManager roleManager = (RoleManager) getBean(Constants.ROLE_MANAGER_BEAN); 116 List availableRoles = new ArrayList (roleManager.listRoles(null)); 117 List allRoles = new ArrayList (availableRoles); 118 availableRoles.removeAll(menuItemRoles); 119 120 selectRolesForm.setAvailableRolesList(availableRoles); 121 selectRolesForm.setSelectedRolesList(menuItemRoles); 122 request.getSession().setAttribute(WebappConstants.MENU_ITEM_ID_KEY, menuItem.getId()); 123 124 request.setAttribute("allRoles", allRoles); 125 126 saveToken(request); 128 return mapping.findForward("assignRoles"); 129 } 130 } | Popular Tags |