<?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="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="gr.uoa.di.validatorweb.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="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="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>

		<action name="populateRuleCategories" class="springManagedpopulateRuleCategories">
			<result>/jsps/chooseRuleCategory.jsp</result>
		</action>

		<action name="prepareAddRule" class="springManagedprepareAddRule">
			<result>/jsps/addRule.jsp</result>
		</action>

		<action name="addRule" class="springManagedaddRule">
			<result>/jsps/info.jsp</result>
		</action>

		<action name="populateRuleList" class="springManagedpopulateRuleList">
			<result>/jsps/deleteRule.jsp</result>
		</action>

		<action name="deleteRule" class="springManageddeleteRule">
			<result>/jsps/info.jsp</result>
		</action>

		<action name="renewRule" class="springManagedrenewRule">
			<result>/jsps/info.jsp</result>
		</action>

		<action name="createRuleSet" class="springManagedcreateRuleSet">
			<result>/jsps/info.jsp</result>
			<result name="input">/jsps/corneeded.jsp</result>
		</action>

		<action name="getRuleSetsForDeletion" class="springManagedgetRuleSetsForDeletion">
			<result>/jsps/chooseRuleSetForDeletion.jsp</result>
		</action>

		<action name="deleteRuleSet" class="springManageddeleteRuleSet">
			<result>/jsps/info.jsp</result>
		</action>
	
	</package>
</struts>
