/** {@inheritDoc} */ public ActionForward execute( ActionMapping mapping, ActionForm formIn, HttpServletRequest request, HttpServletResponse response) { ActionErrors errors = new ActionErrors(); DynaActionForm form = (DynaActionForm) formIn; Map<String, Object> params = makeParamMap(request); RequestContext ctx = new RequestContext(request); // keep the cid if (ctx.hasParam("cid")) { params.put("cid", ctx.getParam("cid", true)); } if (!isSubmitted(form)) { setupForm(request, form); return getStrutsDelegate() .forwardParams(mapping.findForward(RhnHelper.DEFAULT_FORWARD), request.getParameterMap()); } if (ctx.hasParam("create_button")) { Long cid = create(form, errors, ctx); params.put("cid", cid); if (errors.isEmpty()) { createSuccessMessage(request, "message.channelcreated", form.getString("name")); } } else if (ctx.hasParam("edit_button")) { String sharing = (String) form.get("org_sharing"); if (hasSharingChanged(form, ctx) && ("private".equals(sharing) || "protected".equals(sharing))) { // forward to confirm page request.setAttribute("org", ctx.getCurrentUser().getOrg()); formToAttributes(request, form); Map urlParams = new HashMap(); urlParams.put(RequestContext.CID, ctx.getRequiredParam(RequestContext.CID)); ListHelper helper = new ListHelper(this, request, urlParams); helper.setDataSetName(getDataSetName()); helper.setListName(getListName()); // ignore the return helper.execute(); request.setAttribute("channel_name", form.getString("name")); return getStrutsDelegate().forwardParams(mapping.findForward(sharing), params); } edit(form, errors, ctx); if (errors.isEmpty()) { createSuccessMessage(request, "message.channelupdated", form.getString("name")); } // did they enable per user subscriptions? String sub = (String) form.get("per_user_subscriptions"); if (!sub.equals("all")) { addMessage(request, "message.channelsubscribers"); } } // handler for private confirmation page else if (ctx.hasParam(RequestContext.DISPATCH)) { makePrivate(form, errors, ctx); if (errors.isEmpty()) { createSuccessMessage(request, "message.channelupdated", form.getString("name")); } } else if (ctx.hasParam("deny")) { deny(form, errors, ctx); if (errors.isEmpty()) { createSuccessMessage(request, "message.channelupdated", form.getString("name")); } } else if (ctx.hasParam("grant")) { grant(form, errors, ctx); if (errors.isEmpty()) { createSuccessMessage(request, "message.channelupdated", form.getString("name")); } } if (!errors.isEmpty()) { request.setAttribute("channel_label", form.get("label")); request.setAttribute("channel_name", form.getString("name")); request.setAttribute("channel_arch", form.get("arch_name")); request.setAttribute("channel_arch_label", form.get("arch")); request.setAttribute("checksum", form.get("checksum")); addErrors(request, errors); prepDropdowns(new RequestContext(request)); return getStrutsDelegate() .forwardParams(mapping.findForward(RhnHelper.DEFAULT_FORWARD), params); } return getStrutsDelegate().forwardParams(mapping.findForward("success"), params); }