package net.sourceforge.solexatools.webapp.controller;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import net.sourceforge.solexatools.util.LaunchWorkflowUtil;
import net.sourceforge.solexatools.util.SetNodeIdInSession;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;
/**
* <p>
* LogoutController class.
* </p>
*
* @author boconnor
* @version $Id: $Id
*/
public class LogoutController extends AbstractController {
/**
* <p>
* Constructor for LogoutController.
* </p>
*/
public LogoutController() {
// TODO Auto-generated constructor stub
super();
setSupportedMethods(new String[] { METHOD_GET });
}
/**
* {@inheritDoc}
*
* Handles a user's logout request.
*
* @return
* @throws java.lang.Exception
*/
@Override
protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception {
HttpSession session = request.getSession(false);
if (session != null) {
session.removeAttribute("registration");
// Dowload files
session.removeAttribute("bulkDownloadFilePage");
session.removeAttribute("bulkDownloadFiles");
session.removeAttribute("analysisBulkDownloadFiles");
session.removeAttribute("selectInputPage");
// Selected Nodes Id
session.removeAttribute("selectedNodes");
session.removeAttribute("analysisSelectedNodes");
session.removeAttribute("launchSelectedNodes");
// Study Bulk Download
session.removeAttribute("myBulkDownloadPage");
session.removeAttribute("bulkDownloadSharedWithMe");
session.removeAttribute("ascBulkDownloadMyListStudy");
session.removeAttribute("ascBulkDownloadSharedWithMeListStudy");
// Analysis Bulk Download
session.removeAttribute("myAnalisysBulkDownloadPage");
session.removeAttribute("analisysBulkDownloadSharedWithMe");
session.removeAttribute("ascBulkDownloadMyListAnalysis");
session.removeAttribute("ascBulkDownloadSharedWithMeListAnalysis");
// Study
session.removeAttribute("myStudiesPage");
session.removeAttribute("mySharedStudyPage");
session.removeAttribute("studySharedWithMe");
session.removeAttribute("ascMyListStudy");
session.removeAttribute("ascMyShareListStudy");
session.removeAttribute("ascByMeShareListStudy");
// Analysis Workflow
session.removeAttribute("myAnalisysesPage");
session.removeAttribute("mySharedAnalisysesPage");
session.removeAttribute("analisysesSharedWithMePage");
session.removeAttribute("runningAnalisysesPage");
session.removeAttribute("ascMyListAnalysis");
session.removeAttribute("ascMySharedAnalysises");
session.removeAttribute("ascAnalysisesSharedWithMe");
session.removeAttribute("ascMyRunningListAnalysis");
// Sequencer Run
session.removeAttribute("mySequencerPage");
session.removeAttribute("ascMyListSequencerRun");
// Launch Workflow
session.removeAttribute("mySelectInputPage");
session.removeAttribute("ascLaunchListStudy");
session.removeAttribute("workflow");
session.removeAttribute("workflowRun");
session.removeAttribute("workflowParam");
session.removeAttribute("summaryData");
LaunchWorkflowUtil.removeSelectedItemsLaunchWorkflow(request);
// Saved Node Id
SetNodeIdInSession.removeStudy(request);
SetNodeIdInSession.removeWorkflowRun(request);
SetNodeIdInSession.removeSequencerRun(request);
// Remove Saving Nodes Id
session.removeAttribute("listStudyNodeId");
session.removeAttribute("listWorkflowRunNodeId");
session.removeAttribute("listWorkflowRunRunningNodeId");
session.removeAttribute("listSequencerRunNodeId");
// session.removeAttribute("isUserAbortedViewIndexPage");
}
return new ModelAndView("redirect:/Welcome.htm");
}
}