1 19 20 package com.sslexplorer.networkplaces.wizards.actions; 21 22 import java.util.ArrayList ; 23 import java.util.List ; 24 25 import javax.servlet.http.HttpServletRequest ; 26 import javax.servlet.http.HttpServletResponse ; 27 28 import org.apache.commons.logging.Log; 29 import org.apache.commons.logging.LogFactory; 30 import org.apache.struts.action.ActionForm; 31 import org.apache.struts.action.ActionForward; 32 import org.apache.struts.action.ActionMapping; 33 34 import com.sslexplorer.boot.PropertyList; 35 import com.sslexplorer.core.CoreEvent; 36 import com.sslexplorer.core.CoreServlet; 37 import com.sslexplorer.networkplaces.NetworkPlacesEventConstants; 38 import com.sslexplorer.networkplaces.NetworkPlace; 39 import com.sslexplorer.networkplaces.NetworkPlaceDatabaseFactory; 40 import com.sslexplorer.networkplaces.NetworkPlaceResourceType; 41 import com.sslexplorer.networkplaces.wizards.forms.DefaultNetworkPlaceDetailsForm; 42 import com.sslexplorer.networkplaces.wizards.forms.NetworkPlaceDetailsForm; 43 import com.sslexplorer.networkplaces.wizards.forms.NetworkPlacePolicySelectionForm; 44 import com.sslexplorer.policyframework.PolicyDatabaseFactory; 45 import com.sslexplorer.policyframework.Resource; 46 import com.sslexplorer.policyframework.ResourceChangeEvent; 47 import com.sslexplorer.policyframework.ResourceUtil; 48 import com.sslexplorer.security.SessionInfo; 49 import com.sslexplorer.vfs.webdav.DAVProcessor; 50 import com.sslexplorer.vfs.webdav.DAVServlet; 51 import com.sslexplorer.wizard.AbstractWizardSequence; 52 import com.sslexplorer.wizard.WizardActionStatus; 53 import com.sslexplorer.wizard.actions.AbstractWizardAction; 54 import com.sslexplorer.wizard.forms.AbstractWizardFinishForm; 55 56 62 public class NetworkPlaceFinishAction extends AbstractWizardAction { 63 final static Log log = LogFactory.getLog(NetworkPlaceFinishAction.class); 64 private NetworkPlace newNetworkPlace; 65 66 69 public NetworkPlaceFinishAction() { 70 super(); 71 } 72 73 81 public int getNavigationContext(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { 82 return SessionInfo.USER_CONSOLE_CONTEXT | SessionInfo.MANAGEMENT_CONSOLE_CONTEXT; 83 } 84 85 93 public ActionForward unspecified(ActionMapping mapping, ActionForm form, HttpServletRequest request, 94 HttpServletResponse response) throws Exception { 95 List actionStatus = new ArrayList (); 97 AbstractWizardSequence seq = getWizardSequence(request); 98 String scheme = (String ) seq.getAttribute(NetworkPlaceDetailsForm.ATTR_SCHEME, null); 99 String shortName = (String ) seq.getAttribute(NetworkPlaceDetailsForm.ATTR_RESOURCE_NAME, null); 100 String description = (String ) seq.getAttribute(NetworkPlaceDetailsForm.ATTR_RESOURCE_DESCRIPTION, null); 101 String host = (String ) seq.getAttribute(NetworkPlaceDetailsForm.ATTR_HOST, null); 102 String path = (String ) seq.getAttribute(NetworkPlaceDetailsForm.ATTR_PATH, null); 103 int port = ((Integer ) seq.getAttribute(NetworkPlaceDetailsForm.ATTR_PORT, new Integer (0))).intValue(); 104 String username = (String ) seq.getAttribute(NetworkPlaceDetailsForm.ATTR_USERNAME, null); 105 String password = (String ) seq.getAttribute(NetworkPlaceDetailsForm.ATTR_PASSWORD, null); 106 boolean favorite = ((Boolean ) seq.getAttribute(DefaultNetworkPlaceDetailsForm.ATTR_FAVORITE, Boolean.FALSE)).booleanValue(); 107 boolean readOnly = ((Boolean ) seq.getAttribute(NetworkPlaceDetailsForm.ATTR_READ_ONLY, Boolean.FALSE)).booleanValue(); 108 boolean allowRecursive = ((Boolean ) seq.getAttribute(NetworkPlaceDetailsForm.ATTR_ALLOW_RECURSIVE, Boolean.FALSE)) 109 .booleanValue(); 110 boolean noDelete = ((Boolean ) seq.getAttribute(NetworkPlaceDetailsForm.ATTR_NO_DELETE, Boolean.FALSE)).booleanValue(); 111 boolean showHidden = ((Boolean ) seq.getAttribute(NetworkPlaceDetailsForm.ATTR_SHOW_HIDDEN, Boolean.FALSE)).booleanValue(); 112 DAVProcessor processor = DAVServlet.getDAVProcessor(request); 113 try { 116 try { 117 118 newNetworkPlace = NetworkPlaceDatabaseFactory.getInstance().createNetworkPlace(scheme, shortName, description, host, 119 path, port, username, password, readOnly, allowRecursive, noDelete, showHidden, 120 getSessionInfo(request).getUser().getRealm().getRealmID()); 121 122 CoreServlet.getServlet().fireCoreEvent( 123 NetworkPlaceResourceType.addNetworkPlaceAttributes(new ResourceChangeEvent(this, 124 NetworkPlacesEventConstants.CREATE_NETWORK_PLACE, newNetworkPlace, 125 getSessionInfo(request), CoreEvent.STATE_SUCCESSFUL), newNetworkPlace)); 126 } catch (Exception e) { 127 CoreServlet.getServlet().fireCoreEvent( 128 new ResourceChangeEvent(this, NetworkPlacesEventConstants.CREATE_NETWORK_PLACE, 129 getSessionInfo(request), e)); 130 throw e; 131 } 132 actionStatus.add(new WizardActionStatus(WizardActionStatus.COMPLETED_OK, 133 "networkPlaceWizard.networkPlaceFinish.status.profileCreated")); 134 } catch (Exception e) { 135 log.error("Failed to create profile.", e); 136 actionStatus.add(new WizardActionStatus(WizardActionStatus.COMPLETED_WITH_ERRORS, 137 "networkPlaceWizard.networkPlaceFinish.status.failedToCreateProfile", e.getMessage())); 138 } 139 if (newNetworkPlace != null) { 140 actionStatus.add(attachToPolicies(seq, newNetworkPlace, favorite, request)); 141 } 142 ((AbstractWizardFinishForm) form).setActionStatus(actionStatus); 143 return super.unspecified(mapping, form, request, response); 144 } 145 146 public NetworkPlace getNewNetworkPlace() { 147 return newNetworkPlace; 148 } 149 150 160 public ActionForward exit(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) 161 throws Exception { 162 return cancel(mapping, form, request, response); 163 } 164 165 WizardActionStatus attachToPolicies(AbstractWizardSequence seq, Resource resource, boolean addToFavorites, HttpServletRequest request) { 166 PropertyList selectedPolicies = (PropertyList) seq.getAttribute(NetworkPlacePolicySelectionForm.ATTR_SELECTED_POLICIES, 167 null); 168 try { 169 PolicyDatabaseFactory.getInstance().attachResourceToPolicyList(resource, selectedPolicies, getSessionInfo(request)); 170 ResourceUtil.setResourceGlobalFavorite(resource, addToFavorites); 171 return new WizardActionStatus(WizardActionStatus.COMPLETED_OK, 172 "networkPlaceWizard.networkPlaceFinish.status.attachedToPolicies"); 173 } catch (Exception e) { 174 log.error("Failed to create profile.", e); 175 return new WizardActionStatus(WizardActionStatus.COMPLETED_WITH_ERRORS, 176 "networkPlaceWizard.networkPlaceFinish.status.failedToAttachToPolicies", e.getMessage()); 177 } 178 } 179 180 } | Popular Tags |