<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
        "http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>
	<constant name="struts.action.excludePattern" value=".*services.*" />
	<package name="noAuthorization" namespace="/" extends="struts-default">
		<default-action-ref name="welcome" />

		<global-results>
			<result name="input">/jsps/info.jsp</result>
			<result name="exception">/jsps/info.jsp</result>
		</global-results>

		<action name="bugreporter" class="springManagedBugReporter">
			<result>/jsps/info.jsp</result>
		</action>

		<action name="welcome" class="springManagedDummy">
			<result>/jsps/homepage.jsp</result>
		</action>

		<action name="go2login" class="springManagedLoginPage">
			<result>/jsps/login.jsp</result>
			<result name="input" type="redirect">welcome</result>
		</action>

		<action name="go2registration" class="springManagedDummy">
			<result>/jsps/login.jsp</result>
		</action>

		<action name="Register" class="springManagedRegister">
			<result>/jsps/info.jsp</result>
			<result name="input">/jsps/login.jsp</result>
		</action>

		<action name="activateAccount" class="springManagedactivateAccount">
			<result>/jsps/info.jsp</result>
			<result name="input">/jsps/info.jsp</result>
		</action>

		<action name="activateRepo" class="springManagedactivateRepo">
			<result>/jsps/info.jsp</result>
			<result name="input">/jsps/info.jsp</result>
		</action>

		<action name="Login" class="springManagedLogin">
			<result type="redirect">${url}?${params}</result>
			<result name="input">/jsps/login.jsp</result>
			<result name="login" type="redirect">go2login</result>
			<result name="welcome" type="redirect">welcome</result>
		</action>

		<action name="portalLogin" class="springManagedPortalLogin">
			<result>/jsps/homepage.jsp</result>
			<result name="input">/jsps/login.jsp</result>
		</action>

		<action name="refreshCompTestsTab" class="springManagedprepareJobBrowsing">
			<result>/jsps/browseJobsCompTestsTab.jsp</result>
		</action>
		<action name="viewNext" class="springManagedprepareJobBrowsing">
			<result>/jsps/browseJobsCompTestsTab.jsp</result>
		</action>

		<action name="refreshRegistrationsTab" class="springManagedprepareJobBrowsing">
			<result>/jsps/browseJobsRegistrationsTab.jsp</result>
		</action>
		<action name="refreshWorkflowsTab" class="springManagedprepareJobBrowsing">
			<result>/jsps/browseJobsWorkflowsTab.jsp</result>
		</action>

		<action name="sendPassword" class="springManagedsendPassword">
			<result>/jsps/info.jsp</result>
			<result name="input">/jsps/forgotPassword.jsp</result>
		</action>

		<action name="resetPassword" class="springManagedresetPassword">
			<result>/jsps/info.jsp</result>
			<result name="input">/jsps/resetPassword.jsp</result>
		</action>

		<action name="logout" class="springManagedlogout">
			<result>/jsps/homepage.jsp</result>
		</action>

		<action name="score" class="springManagedScore">
			<result>/jsps/score.jsp</result>
		</action>

		<action name="help" class="springManagedHelp">
			<result>/jsps/help.jsp</result>
		</action>

		<action name="forgotPassword" class="springManagedForgotPassword">
			<result>/jsps/forgotPassword.jsp</result>
		</action>

		<action name="identifyRepo" class="springManagedIdentifyRepo">
			<result name="success" type="httpheader">
				<param name="status">200</param>
			</result>
			<result name="error" type="httpheader">
				<param name="status">404</param>
			</result>
		</action>


	</package>

	<package name="needsAuthorization" namespace="/" extends="struts-default">

		<interceptors>
			<interceptor name="authenticationInterceptor"
				class="eu.dnetlib.validator.web.actions.login.AuthenticationInterceptor" />
			<interceptor-stack name="secureStack">
				<interceptor-ref name="authenticationInterceptor" />
				<interceptor-ref name="defaultStack" />
			</interceptor-stack>
		</interceptors>

		<default-interceptor-ref name="secureStack" />

		<global-results>
			<result name="login">/jsps/login.jsp</result>
			<result name="input-problem">/jsps/corneeded.jsp</result>
			<result name="input">/jsps/info.jsp</result>
			<result name="exception">/jsps/info.jsp</result>
		</global-results>

		<action name="fetchRuleDescriptions" class="springManagedfetchRuleDescriptions">
			<result>/jsps/ruleSetInfo.jsp</result>
		</action>

		<action name="showValErrs" class="springManagedshowValErrs">
			<result>/jsps/valErr.jsp</result>
		</action>

		<action name="prepareJobBrowsing" class="springManagedprepareJobBrowsing">
			<result>/jsps/browseJobs.jsp</result>
		</action>

		<action name="curateDB" class="springManagedDatabaseCurator">
			<result type="redirectAction">prepareJobBrowsing</result>
		</action>

		<action name="prepareJobDetails" class="springManagedprepareJobDetails">
			<result>/jsps/jobDetails.jsp</result>
		</action>

		<action name="prepareSummary" class="springManagedprepareSummary">
			<result>/jsps/jobSummary.jsp</result>
		</action>
		
		<action name="downloadFile" class="springManagedDownloadSummary">
            <result name="success" type="stream">
                <param name="contentType">application/octet-stream</param>
                <param name="inputName">inputStream</param>
                <param name="contentDisposition">attachment;filename="${fileName}"</param>
                <param name="bufferSize">4096</param>
            </result>
        </action>

		<action name="registerRepoLocal" class="springManagedregisterRepoLocal">
			<result>/jsps/info.jsp</result>
			<result name="input">/jsps/repoRegistrationLocal.jsp</result>
		</action>

		<action name="repoRegistrationLocal" class="springManagedprepareRepoRegistrationLocal">
			<result>/jsps/repoRegistrationLocal.jsp</result>
		</action>

		<action name="getRulesForSet" class="springManagedgetRulesForSet">
			<result>/jsps/createRuleSet.jsp</result>
			<result name="deleted">/jsps/info.jsp</result>
		</action>

		<action name="getRuleSets" class="springManagedgetRuleSets">
			<result>/jsps/chooseRuleSet.jsp</result>
		</action>

		<action name="populateRuleListForEdit" class="springManagedpopulateRuleList">
			<result>/jsps/chooseRuleForEdit.jsp</result>
		</action>

		<action name="prepareEditRule" class="springManagedprepareEditRule">
			<result>/jsps/editRule.jsp</result>
		</action>

		<action name="editUser" class="springManagededitUser" method="edit">
			<result>/jsps/info.jsp</result>
		</action>

		<action name="userDetails" class="springManagededitUser">
			<result>/jsps/editUser.jsp</result>
		</action>

		<!-- <action name="editRepoDnet" class="springManagededitRepoDnet"> -->
		<!-- <result>/jsps/info.jsp</result> -->
		<!-- <result name="input">/jsps/corneeded.jsp</result> -->
		<!-- </action> -->

		<action name="prepareRepoRegistration" class="springManagedprepareRepoRegistration">
			<result>/jsps/registerRepository.jsp</result>
			<result name="input">/jsps/registerRepository.jsp</result>
			<result name="not-allowed">/jsps/info.jsp</result>
		</action>

		<action name="registerRepo" class="springManagedRepoRegistration">
			<result>/jsps/info.jsp</result>
			<result name="input" type="chain">prepareRepoRegistration</result>
		</action>

		<action name="editRepo" class="springManagedRepoEditing">
			<result>/jsps/info.jsp</result>
			<result name="input" type="chain">prepareRepoEditing</result>
		</action>

		<action name="prepareRepoEditing" class="springManagedprepareRepoEditing">
			<result>/jsps/editRepository.jsp</result>
			<result name="input">/jsps/editRepository.jsp</result>
			<result name="not-allowed">/jsps/info.jsp</result>
		</action>

		<action name="populateRepoList" class="springManagedpopulateRepoList">
			<result>/jsps/chooseRepoForEdit.jsp</result>
		</action>

		<action name="populateRepoSets" class="springManagedPopulateRepoSets">
			<result>/jsps/populateRepositorySets.jsp</result>
		</action>

		<action name="populateDoarList" class="springManagedpopulateDoarList">
			<result>/jsps/chooseDoarRepo.jsp</result>
		</action>

		<action name="populateList" class="springManagedPopulateList"
			method="populate">
			<result>/jsps/rules.jsp</result>
		</action>

		<action name="populateRules" class="springManagedPopulateList">
			<result>/jsps/compatibilityTest.jsp</result>
		</action>

		<action name="reSubmitJob" class="springManagedReSubmitJob">
			<result type="redirectAction">prepareJobBrowsing</result>
		</action>

		<action name="sendFeedback" class="springManagedsendFeedback">
			<result>/jsps/info.jsp</result>
		</action>

		<action name="validateRules" class="springManagedValidateRules">
			<result type="redirectAction">prepareJobBrowsing</result>
		</action>

		<action name="feedback" class="springManagedFeedback">
			<result>/jsps/feedback.jsp</result>
		</action>

	</package>

	<package name="needsAdminAuthorization" namespace="/"
		extends="struts-default">

		<interceptors>
			<interceptor name="adminInterceptor" class="springManagedAdminInterceptor" />
			<interceptor-stack name="secureStackA">
				<interceptor-ref name="adminInterceptor" />
				<interceptor-ref name="defaultStack" />
			</interceptor-stack>
		</interceptors>

		<default-interceptor-ref name="secureStackA" />

		<global-results>
			<result name="login">/jsps/login.jsp</result>
			<result name="input-problem">/jsps/corneeded.jsp</result>
			<result name="input">/jsps/info.jsp</result>
			<result name="exception">/jsps/info.jsp</result>
		</global-results>

	</package>
</struts>
