forked from Coded/SIPRP
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
729 lines
17 KiB
729 lines
17 KiB
/*
|
|
* Page1.java
|
|
*
|
|
* Created on September 18, 2007, 3:14 PM
|
|
* Copyright lluis
|
|
*/
|
|
package analiseacidentestrabalho;
|
|
|
|
import beans.Utilizador;
|
|
import com.evolute.utils.error.ErrorLogger;
|
|
import com.sun.rave.web.ui.appbase.AbstractPageBean;
|
|
import com.sun.rave.web.ui.component.Body;
|
|
import com.sun.rave.web.ui.component.Button;
|
|
import com.sun.rave.web.ui.component.Form;
|
|
import com.sun.rave.web.ui.component.Head;
|
|
import com.sun.rave.web.ui.component.Html;
|
|
import com.sun.rave.web.ui.component.Hyperlink;
|
|
import com.sun.rave.web.ui.component.Link;
|
|
import com.sun.rave.web.ui.component.Page;
|
|
import com.sun.rave.web.ui.component.PasswordField;
|
|
import com.sun.rave.web.ui.component.StaticText;
|
|
import com.sun.rave.web.ui.component.TextField;
|
|
import com.sun.rave.web.ui.model.Option;
|
|
import db.providers.AnalisesDataProvider;
|
|
import db.providers.UtilizadoresDataProvider;
|
|
|
|
import java.text.SimpleDateFormat;
|
|
import java.util.Calendar;
|
|
import java.util.GregorianCalendar;
|
|
import javax.faces.FacesException;
|
|
import javax.faces.component.html.HtmlPanelGrid;
|
|
|
|
import utils.Utils;
|
|
|
|
/**
|
|
* <p>Page bean that corresponds to a similarly named JSP page. This
|
|
* class contains component definitions (and initialization code) for
|
|
* all components that you have defined on this page, as well as
|
|
* lifecycle methods and event handlers where you may add behavior
|
|
* to respond to incoming events.</p>
|
|
*/
|
|
public class Login extends AbstractPageBean
|
|
{
|
|
// <editor-fold defaultstate="collapsed" desc="Managed Component Definition">
|
|
private int __placeholder;
|
|
|
|
/**
|
|
* <p>Automatically managed component initialization. <strong>WARNING:</strong>
|
|
* This method is automatically generated, so any user-specified code inserted
|
|
* here is subject to being replaced.</p>
|
|
*/
|
|
private void _init() throws Exception
|
|
{
|
|
}
|
|
|
|
private Page page1 = new Page();
|
|
|
|
public Page getPage1()
|
|
{
|
|
return page1;
|
|
}
|
|
|
|
public void setPage1( Page p )
|
|
{
|
|
this.page1 = p;
|
|
}
|
|
|
|
private Html html1 = new Html();
|
|
|
|
public Html getHtml1()
|
|
{
|
|
return html1;
|
|
}
|
|
|
|
public void setHtml1( Html h )
|
|
{
|
|
this.html1 = h;
|
|
}
|
|
|
|
private Head head1 = new Head();
|
|
|
|
public Head getHead1()
|
|
{
|
|
return head1;
|
|
}
|
|
|
|
public void setHead1( Head h )
|
|
{
|
|
this.head1 = h;
|
|
}
|
|
|
|
private Link link1 = new Link();
|
|
|
|
public Link getLink1()
|
|
{
|
|
return link1;
|
|
}
|
|
|
|
public void setLink1( Link l )
|
|
{
|
|
this.link1 = l;
|
|
}
|
|
|
|
private Body body1 = new Body();
|
|
|
|
public Body getBody1()
|
|
{
|
|
return body1;
|
|
}
|
|
|
|
public void setBody1( Body b )
|
|
{
|
|
this.body1 = b;
|
|
}
|
|
|
|
private Form form1 = new Form();
|
|
|
|
public Form getForm1()
|
|
{
|
|
return form1;
|
|
}
|
|
|
|
public void setForm1( Form f )
|
|
{
|
|
this.form1 = f;
|
|
}
|
|
|
|
private HtmlPanelGrid gridPanel6 = new HtmlPanelGrid();
|
|
|
|
public HtmlPanelGrid getGridPanel6()
|
|
{
|
|
return gridPanel6;
|
|
}
|
|
|
|
public void setGridPanel6( HtmlPanelGrid hpg )
|
|
{
|
|
this.gridPanel6 = hpg;
|
|
}
|
|
|
|
private HtmlPanelGrid gridPanel1 = new HtmlPanelGrid();
|
|
|
|
public HtmlPanelGrid getGridPanel1()
|
|
{
|
|
return gridPanel1;
|
|
}
|
|
|
|
public void setGridPanel1( HtmlPanelGrid hpg )
|
|
{
|
|
this.gridPanel1 = hpg;
|
|
}
|
|
|
|
private HtmlPanelGrid gridPanel2 = new HtmlPanelGrid();
|
|
|
|
public HtmlPanelGrid getGridPanel2()
|
|
{
|
|
return gridPanel2;
|
|
}
|
|
|
|
public void setGridPanel2( HtmlPanelGrid hpg )
|
|
{
|
|
this.gridPanel2 = hpg;
|
|
}
|
|
|
|
private HtmlPanelGrid gridPanel3 = new HtmlPanelGrid();
|
|
|
|
public HtmlPanelGrid getGridPanel3()
|
|
{
|
|
return gridPanel3;
|
|
}
|
|
|
|
public void setGridPanel3( HtmlPanelGrid hpg )
|
|
{
|
|
this.gridPanel3 = hpg;
|
|
}
|
|
|
|
private HtmlPanelGrid gridPanel4 = new HtmlPanelGrid();
|
|
|
|
public HtmlPanelGrid getGridPanel4()
|
|
{
|
|
return gridPanel4;
|
|
}
|
|
|
|
public void setGridPanel4( HtmlPanelGrid hpg )
|
|
{
|
|
this.gridPanel4 = hpg;
|
|
}
|
|
|
|
private StaticText staticText1 = new StaticText();
|
|
|
|
public StaticText getStaticText1()
|
|
{
|
|
return staticText1;
|
|
}
|
|
|
|
public void setStaticText1( StaticText st )
|
|
{
|
|
this.staticText1 = st;
|
|
}
|
|
|
|
private TextField txtUtilizador = new TextField();
|
|
|
|
public TextField getTxtUtilizador()
|
|
{
|
|
return txtUtilizador;
|
|
}
|
|
|
|
public void setTxtUtilizador( TextField tf )
|
|
{
|
|
this.txtUtilizador = tf;
|
|
}
|
|
|
|
private StaticText staticText2 = new StaticText();
|
|
|
|
public StaticText getStaticText2()
|
|
{
|
|
return staticText2;
|
|
}
|
|
|
|
public void setStaticText2( StaticText st )
|
|
{
|
|
this.staticText2 = st;
|
|
}
|
|
|
|
private PasswordField txtPassword = new PasswordField();
|
|
|
|
public PasswordField getTxtPassword()
|
|
{
|
|
return txtPassword;
|
|
}
|
|
|
|
public void setTxtPassword( PasswordField pf )
|
|
{
|
|
this.txtPassword = pf;
|
|
}
|
|
|
|
private HtmlPanelGrid gridPanel5 = new HtmlPanelGrid();
|
|
|
|
public HtmlPanelGrid getGridPanel5()
|
|
{
|
|
return gridPanel5;
|
|
}
|
|
|
|
public void setGridPanel5( HtmlPanelGrid hpg )
|
|
{
|
|
this.gridPanel5 = hpg;
|
|
}
|
|
|
|
private Hyperlink lnkPassRecovery = new Hyperlink();
|
|
|
|
public Hyperlink getLnkPassRecovery()
|
|
{
|
|
return lnkPassRecovery;
|
|
}
|
|
|
|
public void setLnkPassRecovery( Hyperlink h )
|
|
{
|
|
this.lnkPassRecovery = h;
|
|
}
|
|
|
|
private Button butLogin = new Button();
|
|
|
|
public Button getButLogin()
|
|
{
|
|
return butLogin;
|
|
}
|
|
|
|
public void setButLogin( Button b )
|
|
{
|
|
this.butLogin = b;
|
|
}
|
|
|
|
private StaticText txtMsg = new StaticText();
|
|
|
|
public StaticText getTxtMsg()
|
|
{
|
|
return txtMsg;
|
|
}
|
|
|
|
public void setTxtMsg( StaticText st )
|
|
{
|
|
this.txtMsg = st;
|
|
}
|
|
|
|
// </editor-fold>
|
|
|
|
/**
|
|
* <p>Construct a new Page bean instance.</p>
|
|
*/
|
|
public Login()
|
|
{
|
|
// connect();
|
|
}
|
|
|
|
/**
|
|
* <p>Callback method that is called whenever a page is navigated to,
|
|
* either directly via a URL, or indirectly via page navigation.
|
|
* Customize this method to acquire resources that will be needed
|
|
* for event handlers and lifecycle methods, whether or not this
|
|
* page is performing post back processing.</p>
|
|
* <p/>
|
|
* <p>Note that, if the current request is a postback, the property
|
|
* values of the components do <strong>not</strong> represent any
|
|
* values submitted with this request. Instead, they represent the
|
|
* property values that were saved for this view when it was rendered.</p>
|
|
*/
|
|
@Override
|
|
public void init()
|
|
{
|
|
// Perform initializations inherited from our superclass
|
|
super.init();
|
|
// Perform application initialization that must complete
|
|
// *before* managed components are initialized
|
|
// TODO - add your own initialiation code here
|
|
|
|
// <editor-fold defaultstate="collapsed" desc="Managed Component Initialization">
|
|
// Initialize automatically managed components
|
|
// *Note* - this logic should NOT be modified
|
|
try
|
|
{
|
|
_init();
|
|
}
|
|
catch( Exception e )
|
|
{
|
|
log( "Page1 Initialization Failure", e );
|
|
throw e instanceof FacesException ? ( FacesException ) e : new FacesException( e );
|
|
}
|
|
|
|
// </editor-fold>
|
|
// Perform application initialization that must complete
|
|
// *after* managed components are initialized
|
|
// TODO - add your own initialization code here
|
|
|
|
}
|
|
|
|
/**
|
|
* <p>Callback method that is called after the component tree has been
|
|
* restored, but before any event processing takes place. This method
|
|
* will <strong>only</strong> be called on a postback request that
|
|
* is processing a form submit. Customize this method to allocate
|
|
* resources that will be required in your event handlers.</p>
|
|
*/
|
|
@Override
|
|
public void preprocess()
|
|
{
|
|
}
|
|
|
|
/**
|
|
* <p>Callback method that is called just before rendering takes place.
|
|
* This method will <strong>only</strong> be called for the page that
|
|
* will actually be rendered (and not, for example, on a page that
|
|
* handled a postback and then navigated to a different page). Customize
|
|
* this method to allocate resources that will be required for rendering
|
|
* this page.</p>
|
|
*/
|
|
@Override
|
|
public void prerender()
|
|
{
|
|
txtMsg.setText( getSessionBean1().getMsg() );
|
|
getSessionBean1().setMsg( "" );
|
|
}
|
|
|
|
/**
|
|
* <p>Callback method that is called after rendering is completed for
|
|
* this request, if <code>init()</code> was called (regardless of whether
|
|
* or not this was the page that was actually rendered). Customize this
|
|
* method to release resources acquired in the <code>init()</code>,
|
|
* <code>preprocess()</code>, or <code>prerender()</code> methods (or
|
|
* acquired during execution of an event handler).</p>
|
|
*/
|
|
@Override
|
|
public void destroy()
|
|
{
|
|
|
|
}
|
|
|
|
/**
|
|
* <p>Return a reference to the scoped data bean.</p>
|
|
*/
|
|
protected SessionBean1 getSessionBean1()
|
|
{
|
|
return ( SessionBean1 ) getBean( "SessionBean1" );
|
|
}
|
|
|
|
/**
|
|
* <p>Return a reference to the scoped data bean.</p>
|
|
*/
|
|
protected RequestBean1 getRequestBean1()
|
|
{
|
|
return ( RequestBean1 ) getBean( "RequestBean1" );
|
|
}
|
|
|
|
/**
|
|
* <p>Return a reference to the scoped data bean.</p>
|
|
*/
|
|
protected ApplicationBean1 getApplicationBean1()
|
|
{
|
|
return ( ApplicationBean1 ) getBean( "ApplicationBean1" );
|
|
}
|
|
|
|
public String butLogin_action()
|
|
{
|
|
String sRet = null;
|
|
|
|
if( txtUtilizador.getText() != null )
|
|
{
|
|
String utilizador = ( String ) txtUtilizador.getText();
|
|
if( utilizador.trim().length() > 0 )
|
|
{
|
|
if( txtPassword.getText() != null )
|
|
{
|
|
String password = ( String ) txtPassword.getText();
|
|
if( password.trim().length() > 0 )
|
|
{
|
|
try
|
|
{
|
|
UtilizadoresDataProvider udp = UtilizadoresDataProvider.getInstance();
|
|
|
|
Utilizador u = udp.getUtilizador( utilizador );
|
|
if( u != null && "y".equals( u.getActivo() ) )
|
|
{
|
|
if( !password.equals( u.getPassword() ) )
|
|
{
|
|
getSessionBean1().setMsg( "Palavra-chave inválida !" );
|
|
}
|
|
else
|
|
{
|
|
//if(u.getOwner_id().intValue() == 0 )
|
|
|
|
Utils.doLogin( getExternalContext(), u );
|
|
|
|
//Login Ok !
|
|
//if(u.getPrimeiro_login().matches("y") || mustChangePassword(u))
|
|
if( u.getPrimeiro_login().matches( "y" ) )
|
|
{
|
|
getSessionBean1().setMudarPassword( true );
|
|
getSessionBean1().setCurrentUser( u );
|
|
getSessionBean1().setNavFrom( "Login" );
|
|
getSessionBean1().setModoEdicaoUtilizador( "edit" );
|
|
getSessionBean1().setLoggedIn( true );
|
|
initializeClock();
|
|
initializeDropDownOptions();
|
|
return "user";
|
|
}
|
|
|
|
getSessionBean1().setSiprp( udp.isSiprp( u ) );
|
|
|
|
try
|
|
{
|
|
Integer permissao = udp.getPermissionCode( u.getId() );
|
|
sRet = "form_seguranca";
|
|
if( permissao != null )
|
|
{
|
|
if( permissao.intValue() == 1 ) //seguranca
|
|
{
|
|
if( u.getResponsavel_loja().matches( "y" ) )
|
|
{
|
|
sRet = "acesso";
|
|
}
|
|
else
|
|
{
|
|
sRet = "form_seguranca";
|
|
}
|
|
}
|
|
else if( permissao.intValue() == 2 ) // rh
|
|
{
|
|
if( u.getResponsavel_loja().matches( "y" ) )
|
|
{
|
|
sRet = "acesso";
|
|
}
|
|
else
|
|
{
|
|
sRet = "form_rh";
|
|
}
|
|
//sRet = "form_rh";
|
|
}
|
|
else if( permissao.intValue() == 3 ) // hs
|
|
{
|
|
//sRet = "form_hs";
|
|
sRet = "acesso";
|
|
}
|
|
else if( permissao.intValue() == 5 ) // medico
|
|
{
|
|
sRet = "form_medico";
|
|
}
|
|
else if( permissao.intValue() == 6 ) // gestor
|
|
{
|
|
//sRet = "form_gestor";
|
|
sRet = "acesso";
|
|
}
|
|
else if( permissao.intValue() == 7 ) // director geral rh
|
|
{
|
|
//sRet = "form_rh";
|
|
//sRet = "form_dir_ger_rh";
|
|
sRet = "acesso";
|
|
}
|
|
else if( permissao.intValue() == 8 ) // director siprp
|
|
{
|
|
//sRet = "form_dir_siprp";
|
|
sRet = "acesso";
|
|
}
|
|
else if( permissao.intValue() == 9 ) // director loja
|
|
{
|
|
sRet = "acesso";
|
|
}
|
|
else if( permissao.intValue() == 10 ) // director nacional de seguranca
|
|
{
|
|
sRet = "acesso";
|
|
}
|
|
}
|
|
|
|
u.setCodigo_permissao( permissao );
|
|
getSessionBean1().setCurrentUser( u );
|
|
getSessionBean1().setLoggedIn( true );
|
|
initializeClock();
|
|
initializeDropDownOptions();
|
|
|
|
// so para testes. retirar depois :
|
|
///getSessionBean1().setModoEdicaoUtilizador("new");
|
|
///sRet = "create_user";
|
|
}
|
|
catch( Exception e1 )
|
|
{
|
|
ErrorLogger.logException( e1 );
|
|
getSessionBean1()
|
|
.setMsg( "Não tem permissão para entrar na aplicação !" );
|
|
}
|
|
}
|
|
|
|
}
|
|
else
|
|
{
|
|
getSessionBean1().setMsg( "Utilizador inválido ! " );
|
|
}
|
|
}
|
|
catch( Exception ex )
|
|
{
|
|
ErrorLogger.logException( ex );
|
|
getSessionBean1().setMsg( "Utilizador inválido ! " );
|
|
}
|
|
}
|
|
else
|
|
{
|
|
getSessionBean1().setMsg( "Falta palavra-chave !" );
|
|
}
|
|
}
|
|
else
|
|
{
|
|
getSessionBean1().setMsg( "Falta palavra-chave !" );
|
|
}
|
|
}
|
|
else
|
|
{
|
|
getSessionBean1().setMsg( "Falta utilizador !" );
|
|
}
|
|
}
|
|
else
|
|
{
|
|
getSessionBean1().setMsg( "Falta utilizador !" );
|
|
}
|
|
return sRet;
|
|
}
|
|
|
|
public String lnkPassRecovery_action()
|
|
{
|
|
return "recuperar_password";
|
|
}
|
|
|
|
// private void connect()
|
|
// {
|
|
// db.Db db = new db.Db();
|
|
// try
|
|
// {
|
|
// Connection connection = db.connect();
|
|
// }
|
|
// catch(Exception ex)
|
|
// {
|
|
// getSessionBean1().setMsg("Erro na ligação à Base de Dados");
|
|
// //***** terminate session
|
|
// try
|
|
// {
|
|
// getExternalContext().redirect("faces/Erro.jsp");
|
|
// }
|
|
// catch ( Exception e )
|
|
// {
|
|
// ErrorLogger.logException( e );
|
|
// }
|
|
// ErrorLogger.logException( ex );
|
|
// }
|
|
// }
|
|
|
|
private void initializeClock()
|
|
{
|
|
com.sun.rave.web.ui.model.Option[] horasOptions = new com.sun.rave.web.ui.model.Option[25];
|
|
horasOptions[0] = new Option( new Integer( -1 ), "-" );
|
|
int j = 0;
|
|
String str_j = "";
|
|
for( int i = 1; i < 25; i++ )
|
|
{
|
|
if( j < 10 )
|
|
{
|
|
str_j = "0" + new Integer( j ).toString();
|
|
}
|
|
else
|
|
{
|
|
str_j = new Integer( j ).toString();
|
|
}
|
|
horasOptions[i] = new Option( new Integer( j ), str_j );
|
|
j++;
|
|
}
|
|
getSessionBean1().setHorasOptions( horasOptions );
|
|
|
|
com.sun.rave.web.ui.model.Option[] minutosOptions = new com.sun.rave.web.ui.model.Option[13];
|
|
minutosOptions[0] = new Option( new Integer( -1 ), "-" );
|
|
j = 0;
|
|
for( int i = 1; i < 13; i++ )
|
|
{
|
|
if( j < 10 )
|
|
{
|
|
str_j = "0" + new Integer( j ).toString();
|
|
}
|
|
else
|
|
{
|
|
str_j = new Integer( j ).toString();
|
|
}
|
|
minutosOptions[i] = new Option( new Integer( j ), str_j );
|
|
j += 5;
|
|
}
|
|
getSessionBean1().setMinutosOptions( minutosOptions );
|
|
}
|
|
|
|
private void initializeDropDownOptions()
|
|
{
|
|
// UtilizadoresDataProvider udp = new UtilizadoresDataProvider();
|
|
// try
|
|
// {
|
|
// getSessionBean1().setTecnicosOptions(udp.getTecnicosSaudeList());
|
|
// //drpTipo.setSelected(new Integer(0));
|
|
// }
|
|
// catch(Exception ex)
|
|
// {
|
|
// ErrorLogger.logException( ex );
|
|
// }
|
|
|
|
// try
|
|
// {
|
|
// getSessionBean1().setMedicosOptions(udp.getMedicosList());
|
|
// //drpTipo.setSelected(new Integer(0));
|
|
// }
|
|
// catch(Exception ex)
|
|
// {
|
|
// ErrorLogger.logException( ex );
|
|
// }
|
|
|
|
// AnalisesDataProvider adp = new AnalisesDataProvider();
|
|
try
|
|
{
|
|
AnalisesDataProvider adp = AnalisesDataProvider.getInstance();
|
|
getSessionBean1().setCausasOptions( adp.getCausasAcidente( false ) );
|
|
}
|
|
catch( Exception ex )
|
|
{
|
|
ErrorLogger.logException( ex );
|
|
}
|
|
|
|
try
|
|
{
|
|
AnalisesDataProvider adp = AnalisesDataProvider.getInstance();
|
|
getSessionBean1().setDepartamentoOptions( adp.getDepartamentosList() );
|
|
}
|
|
catch( Exception ex )
|
|
{
|
|
ErrorLogger.logException( ex );
|
|
}
|
|
|
|
}
|
|
|
|
private boolean mustChangePassword( Utilizador u )
|
|
{
|
|
java.util.Date now = new java.util.Date();
|
|
Calendar cal = new GregorianCalendar();
|
|
cal.setTime( now );
|
|
int ano = cal.get( Calendar.YEAR );
|
|
int mes = cal.get( Calendar.MONTH );
|
|
int dia = cal.get( Calendar.DAY_OF_MONTH );
|
|
|
|
Calendar today = new GregorianCalendar( ano, mes, dia );
|
|
Calendar firstJan = new GregorianCalendar( ano, Calendar.JANUARY, 1 );
|
|
// Calendar firstJan = new GregorianCalendar(ano, Calendar.DECEMBER, 27);
|
|
Calendar firstJul = new GregorianCalendar( ano, Calendar.JULY, 1 );
|
|
|
|
if( today.compareTo( firstJan ) == 0 || today.compareTo( firstJul ) == 0 )
|
|
{
|
|
return true;
|
|
}
|
|
|
|
if( u.getData_password() == null )
|
|
{
|
|
return true;
|
|
}
|
|
else
|
|
{
|
|
SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd" );
|
|
try
|
|
{
|
|
java.util.Date dt_password = sdf.parse( u.getData_password().toString() );
|
|
Calendar cal_dt_password = new GregorianCalendar();
|
|
cal_dt_password.setTime( dt_password );
|
|
cal_dt_password.add( GregorianCalendar.MONTH, 6 );
|
|
if( cal.compareTo( cal_dt_password ) > 0 )
|
|
{
|
|
return true;
|
|
}
|
|
else
|
|
{
|
|
return false;
|
|
}
|
|
|
|
}
|
|
catch( Exception ex )
|
|
{
|
|
ErrorLogger.logException( ex );
|
|
}
|
|
|
|
}
|
|
return false;
|
|
}
|
|
}
|
|
|