forked from Coded/SIPRP
git-svn-id: https://svn.coded.pt/svn/SIPRP@1823 bb69d46d-e84e-40c8-a05a-06db0d633741
parent
9cea093698
commit
9f9508298b
@ -0,0 +1,140 @@
|
||||
/*
|
||||
* To change this template, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
|
||||
package phaselistener;
|
||||
|
||||
import com.evolute.module.updater.Updater;
|
||||
import com.evolute.properties.EvoAbstractPropertiesLoader;
|
||||
import com.evolute.utils.date.DateUtils;
|
||||
import com.evolute.utils.error.ErrorLogger;
|
||||
import com.evolute.utils.timer.TimedEvent;
|
||||
import com.evolute.utils.timer.Timer;
|
||||
import db.DBConstants.DB;
|
||||
import db.providers.EvoBaseProvider;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import javax.servlet.ServletContextEvent;
|
||||
import javax.servlet.ServletContextListener;
|
||||
|
||||
import shst.companydataloaders.SIPRPPropertiesLoader;
|
||||
import updates.PAUpdatesListProvider;
|
||||
import utils.PlanosActuacaoLogger;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author dneves
|
||||
*/
|
||||
public class PAContextListener implements ServletContextListener
|
||||
{
|
||||
private static final int IMPORT_INTERVAL = 300;
|
||||
|
||||
private long startedTime = 0L;
|
||||
|
||||
private TimedEvent importEvent = null;
|
||||
|
||||
@Override
|
||||
public void contextInitialized( ServletContextEvent sce )
|
||||
{
|
||||
startedTime = System.currentTimeMillis();
|
||||
System.out.println( "\n\ncontextInitialized : " + startedTime );
|
||||
|
||||
try
|
||||
{
|
||||
System.out.println( "\nInitializing PA logger ..." );
|
||||
PlanosActuacaoLogger.init();
|
||||
}
|
||||
catch ( Throwable e )
|
||||
{
|
||||
e.printStackTrace( System.err );
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
System.out.println( "\n\tReading app.properties ..." );
|
||||
EvoAbstractPropertiesLoader.forceEncryptedPropertiesFile = false;
|
||||
SIPRPPropertiesLoader props = SIPRPPropertiesLoader.getInstance();
|
||||
props.load();
|
||||
}
|
||||
catch ( Exception e )
|
||||
{
|
||||
// ErrorLogger.logException( e );
|
||||
System.out.println( "\n\n<---- ERROR ! " + e.getMessage() );
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
System.out.println( "\nInitializing db ..." );
|
||||
EvoBaseProvider.getInstance();
|
||||
}
|
||||
catch ( Exception e )
|
||||
{
|
||||
ErrorLogger.logException( e );
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
System.out.println( "\nExecuting db updates ..." );
|
||||
Updater.setDBUserForUpdate( EvoBaseProvider.getInstance().getUrl(), EvoBaseProvider.getInstance().getUsername(), EvoBaseProvider.getInstance().getPassword() );
|
||||
Updater.getInstance().executeUpdates( false, PAUpdatesListProvider.getInstance().getUpdates() );
|
||||
}
|
||||
catch ( Exception e )
|
||||
{
|
||||
ErrorLogger.logException( e );
|
||||
}
|
||||
|
||||
|
||||
// System.out.println( "\nScheduling Import Event ... " );
|
||||
// importEvent = new TimedEvent()
|
||||
// {
|
||||
// @Override
|
||||
// public void executeAction() throws Exception
|
||||
// {
|
||||
// try
|
||||
// {
|
||||
// PlanosActuacao planos = new PlanosActuacao();
|
||||
// }
|
||||
// catch ( Exception e )
|
||||
// {
|
||||
// ErrorLogger.logException( e );
|
||||
// }
|
||||
// Timer.resetEvent( this );
|
||||
// }
|
||||
// };
|
||||
// Timer.scheduleEvent( importEvent, IMPORT_INTERVAL );
|
||||
// System.out.println( "\tExecuting Import each " + ( IMPORT_INTERVAL / 60 ) + " minutes." );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void contextDestroyed( ServletContextEvent sce )
|
||||
{
|
||||
System.out.println( "\ncontextDestroyed() : " );
|
||||
|
||||
if ( importEvent != null )
|
||||
{
|
||||
System.out.println( "\tStopping import timer ..." );
|
||||
Timer.abortEvent( importEvent );
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
System.out.println( "\nClosing provider connections" );
|
||||
EvoBaseProvider.getInstance().getProvider( DB.SIPRP ).close();
|
||||
EvoBaseProvider.getInstance().getProvider( DB.SIPRP_LOCAL ).close();
|
||||
EvoBaseProvider.getInstance().getDbManager( DB.SIPRP_LOCAL ).close();
|
||||
EvoBaseProvider.getInstance().getDbManager( DB.SIPRP ).close();
|
||||
}
|
||||
catch ( Exception e )
|
||||
{
|
||||
ErrorLogger.logException( e );
|
||||
}
|
||||
|
||||
long endTime = System.currentTimeMillis();
|
||||
SimpleDateFormat D_F = new SimpleDateFormat( "dd-MM-yyyy HH:mm:ss" );
|
||||
Date startDate = new Date( startedTime );
|
||||
Date endDate = new Date( endTime );
|
||||
String timePassed = DateUtils.getTimePassed( startedTime, endTime );
|
||||
System.out.println( "\trunning for: " + D_F.format( startDate ) + " -> " + D_F.format( endDate ) + " = " + ( (endTime - startedTime) / 1000 ) + " s ; " + timePassed );
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,275 @@
|
||||
/*
|
||||
* To change this template, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
|
||||
package phaselistener;
|
||||
|
||||
import com.evolute.utils.error.ErrorLogger;
|
||||
import db.entidades.Utilizador;
|
||||
import db.providers.UtilizadoresDataProvider;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import utils.Global;
|
||||
import java.util.HashMap;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import javax.faces.component.UIViewRoot;
|
||||
import javax.faces.context.ExternalContext;
|
||||
import javax.faces.context.FacesContext;
|
||||
import javax.faces.event.PhaseEvent;
|
||||
import javax.faces.event.PhaseId;
|
||||
import javax.faces.event.PhaseListener;
|
||||
import javax.servlet.ServletContext;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpSession;
|
||||
import planosactuacao.SessionBean1;
|
||||
import utils.JSFHTTPUtils;
|
||||
import utils.JSFUtils;
|
||||
import utils.Logos;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author lluis
|
||||
*/
|
||||
public class PAMainPhaseListener implements PhaseListener
|
||||
{
|
||||
private static final SimpleDateFormat DT_F = new SimpleDateFormat( "yyyy-MM-dd - HH:mm:ss.S", new Locale( "pt", "PT" ) );
|
||||
private boolean firstEntry = true;
|
||||
|
||||
@Override
|
||||
public void afterPhase( PhaseEvent pe )
|
||||
{
|
||||
if ( pe.getPhaseId() == PhaseId.RENDER_RESPONSE )
|
||||
{
|
||||
FacesContext fc = pe.getFacesContext();
|
||||
String view = fc.getViewRoot().getViewId();
|
||||
System.out.println( "\nafterPhase . RENDER RESPONSE VIEW : " + view );
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void beforePhase(PhaseEvent event)
|
||||
{
|
||||
if ( event.getPhaseId() == PhaseId.RENDER_RESPONSE )
|
||||
{
|
||||
System.out.println( DT_F.format( new Date() ) );
|
||||
FacesContext fc = event.getFacesContext();
|
||||
UIViewRoot view = fc.getViewRoot();
|
||||
String viewID = view.getViewId();
|
||||
ExternalContext ec = fc.getExternalContext();
|
||||
|
||||
try
|
||||
{
|
||||
SessionBean1 session = JSFUtils.getSessionBean( fc );
|
||||
String referer = JSFHTTPUtils.getReferer( fc );
|
||||
|
||||
HttpServletRequest req = ( HttpServletRequest ) ec.getRequest();
|
||||
|
||||
if ( referer != null && referer.contains( "/AnaliseAcidentesTrabalho/" ) )
|
||||
{
|
||||
HttpSession reqSession = ( HttpSession ) ec.getSession( false );
|
||||
ServletContext paContext = reqSession.getServletContext();
|
||||
ServletContext aatContext = paContext.getContext( "/AnaliseAcidentesTrabalho" );
|
||||
|
||||
String sessionID = req.getParameter( "sessionID" );
|
||||
|
||||
Map< String, Object > paData = new HashMap< String, Object >();
|
||||
paData.put( "session", reqSession );
|
||||
paContext.setAttribute( sessionID, paData );
|
||||
|
||||
Map< String, Object > mapData = ( Map< String, Object > ) aatContext.getAttribute( sessionID );
|
||||
Integer userID = ( Integer ) mapData.get( "userID" );
|
||||
if ( userID != null )
|
||||
{
|
||||
Utilizador currentUser = UtilizadoresDataProvider.getInstance().getUtilizador( userID );
|
||||
session.setCurrentUser( currentUser );
|
||||
session.setLoggedIn( true );
|
||||
session.setAatSessionID( sessionID );
|
||||
setupPages( fc, session, viewID );
|
||||
}
|
||||
else
|
||||
{
|
||||
gotoLogin( fc, viewID );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( session.isLoggedIn() && session.getCurrentUser() != null )
|
||||
{
|
||||
setupPages( fc, session, viewID );
|
||||
}
|
||||
else
|
||||
{
|
||||
gotoLogin( fc, viewID );
|
||||
}
|
||||
}
|
||||
}
|
||||
catch ( Exception e )
|
||||
{
|
||||
gotoLogin( fc, viewID );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// public void beforePhase( PhaseEvent pe )
|
||||
// {
|
||||
// if ( pe.getPhaseId() == PhaseId.RENDER_RESPONSE )
|
||||
// {
|
||||
// System.out.println( "beforePhase() : " );
|
||||
//
|
||||
// FacesContext fc = pe.getFacesContext();
|
||||
// SessionBean1 session = JSFUtils.getSessionBean( fc );
|
||||
// String referer = JSFHTTPUtils.getReferer( pe.getFacesContext() );
|
||||
// System.out.println( "\tReferer : " + referer );
|
||||
//
|
||||
// UIViewRoot view = fc.getViewRoot();
|
||||
// System.out.println( "\tView : " + view );
|
||||
// String viewID = view.getViewId();
|
||||
// System.out.println( "\t\tView ID :" + viewID );
|
||||
//
|
||||
//
|
||||
// if ( referer != null && referer.contains( "/AnaliseAcidentesTrabalho/" ) )
|
||||
// {
|
||||
//
|
||||
// ExternalContext ec = fc.getExternalContext();
|
||||
// if ( ec != null )
|
||||
// {
|
||||
// HttpSession reqSession = ( HttpSession ) ec.getSession( false );
|
||||
// System.out.println( "\treqSession : " + reqSession );
|
||||
//
|
||||
// ServletContext thisContext = reqSession.getServletContext();
|
||||
// System.out.println( "\tthisContext : " + thisContext );
|
||||
//
|
||||
// ServletContext otherContext = thisContext.getContext( "/AnaliseAcidentesTrabalho" );
|
||||
// System.out.println( "\totherContext : " + otherContext );
|
||||
//
|
||||
// String sessionID = ( String ) otherContext.getAttribute( "sessionID" );
|
||||
// Map< String, Object > mapData = ( Map< String, Object > ) otherContext.getAttribute( sessionID );
|
||||
// Integer userID = ( Integer ) mapData.get( "userID" );
|
||||
//
|
||||
// System.out.println( "\n\tsessionID : " + sessionID );
|
||||
// System.out.println( "\tuserID : " + userID );
|
||||
//
|
||||
// if ( userID != null )
|
||||
// {
|
||||
// try
|
||||
// {
|
||||
// Utilizador currentUser = UtilizadoresDataProvider.getInstance().getUtilizador( userID );
|
||||
// session.setCurrentUser( currentUser );
|
||||
//
|
||||
// setupPages( fc, session, viewID );
|
||||
// }
|
||||
// catch ( Exception e )
|
||||
// {
|
||||
// ErrorLogger.logException( e );
|
||||
// gotoLogin( fc, viewID );
|
||||
// }
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// gotoLogin( fc, viewID );
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
//
|
||||
// HttpServletRequest req = ( HttpServletRequest ) fc.getExternalContext().getRequest();
|
||||
// boolean sessionValid = req.isRequestedSessionIdValid();
|
||||
// System.out.println( "\tSessionValid : " + sessionValid );
|
||||
//
|
||||
// boolean loggedIn = session.isLoggedIn();
|
||||
// System.out.println( "\tLogged In : " + loggedIn );
|
||||
//
|
||||
// if ( sessionValid && loggedIn )
|
||||
// {
|
||||
// System.out.println( "\t---> session IS valid && user IS logged in." );
|
||||
//
|
||||
// setupPages( fc, session, viewID );
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// gotoLogin( fc, viewID );
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
@Override
|
||||
public PhaseId getPhaseId()
|
||||
{
|
||||
return PhaseId.ANY_PHASE;
|
||||
}
|
||||
|
||||
private void gotoLogin( FacesContext fc, String viewID )
|
||||
{
|
||||
if ( viewID.compareTo( "/Login.jsp" ) != 0 )
|
||||
{
|
||||
try
|
||||
{
|
||||
String url = Global.ANALISE_ACIDENTES_URL + "Login.jsp";
|
||||
JSFUtils.redirect( fc, url );
|
||||
}
|
||||
catch ( Exception e )
|
||||
{
|
||||
ErrorLogger.logException( e );
|
||||
System.out.println( "\n\t\t\tERROR REDIRECTING TO LOGIN !" );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void setupPages( FacesContext fc, SessionBean1 session, String viewID )
|
||||
{
|
||||
//disable/enable EditarPlano menu ???
|
||||
session.setRenderTopMenuImages( true );
|
||||
session.setRenderSubHeader( false );
|
||||
session.setDisableMenuEstatisticas( false );
|
||||
|
||||
Utilizador currentUser = session.getCurrentUser();
|
||||
int userType = currentUser == null ? -1 : currentUser.getTipo() == null ? -1 : currentUser.getTipo().intValue();
|
||||
if ( viewID.matches( "/EditarPlano.jsp" ) || viewID.matches( "/EnviarCorrecao.jsp" ) || viewID.matches( "/ViewPlano.jsp" ) || viewID.matches( "/Estatistica.jsp" ) )
|
||||
{
|
||||
session.setDisableMenu( false );
|
||||
session.setDisableMenuPlanos( false );
|
||||
if ( viewID.matches( "/ViewPlano.jsp" ) )
|
||||
{
|
||||
session.setDisableMenuUtilizadores( userType != Global.DIRECTOR_SIPRP );
|
||||
session.setDisableMenuDadosUtilizador( false );
|
||||
session.setRenderTopMenuImages( false );
|
||||
session.setRenderSubHeader( true );
|
||||
}
|
||||
else if ( viewID.matches( "/EditarPlano.jsp" ) )
|
||||
{
|
||||
session.setDisableMenuPlanos( false );
|
||||
session.setRenderTopMenuImages( false );
|
||||
session.setRenderSubHeader( true );
|
||||
}
|
||||
else if( viewID.matches( "/Estatistica.jsp" ) )
|
||||
{
|
||||
session.setDisableMenuPlanos( false );
|
||||
session.setRenderTopMenuImages( false );
|
||||
session.setDisableMenuEstatisticas( true );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
session.setDisableMenu(false);
|
||||
if ( viewID.matches( "/ListaPlanos.jsp" ) )
|
||||
{
|
||||
if ( userType == Global.RH || userType == Global.GESTOR )
|
||||
{
|
||||
session.setDisableMenuUtilizadores( true );
|
||||
}
|
||||
session.setDisableMenuPlanos( true );
|
||||
}
|
||||
}
|
||||
|
||||
//insert logos
|
||||
Integer empresaId = currentUser != null ? currentUser.getEmpresa_id() : null;
|
||||
Logos logos = new Logos();
|
||||
String logourl = logos.getLogo( fc, empresaId );
|
||||
session.setLogoEmpresaUrl( logourl );
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,33 @@
|
||||
/*
|
||||
* To change this template, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
|
||||
package phaselistener;
|
||||
|
||||
import javax.servlet.http.HttpSession;
|
||||
import javax.servlet.http.HttpSessionEvent;
|
||||
import javax.servlet.http.HttpSessionListener;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author dneves
|
||||
*/
|
||||
public class PASessionListener implements HttpSessionListener
|
||||
{
|
||||
|
||||
@Override
|
||||
public void sessionCreated( HttpSessionEvent se )
|
||||
{
|
||||
HttpSession session = se.getSession();
|
||||
System.out.println( "PlanosActuacao : new Session Created : " + session.getId() );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sessionDestroyed( HttpSessionEvent se )
|
||||
{
|
||||
HttpSession session = se.getSession();
|
||||
System.out.println( "PlanosActuacao : session destroyed : " + session.getId() );
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Reference in new issue