/* * 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; /** *

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.

*/ public class Login extends AbstractPageBean { // private int __placeholder; /** *

Automatically managed component initialization. WARNING: * This method is automatically generated, so any user-specified code inserted * here is subject to being replaced.

*/ 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; } //
/** *

Construct a new Page bean instance.

*/ public Login() { // connect(); } /** *

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.

*

*

Note that, if the current request is a postback, the property * values of the components do not represent any * values submitted with this request. Instead, they represent the * property values that were saved for this view when it was rendered.

*/ @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 // // 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 ); } // // Perform application initialization that must complete // *after* managed components are initialized // TODO - add your own initialization code here } /** *

Callback method that is called after the component tree has been * restored, but before any event processing takes place. This method * will only 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.

*/ @Override public void preprocess() { } /** *

Callback method that is called just before rendering takes place. * This method will only 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.

*/ @Override public void prerender() { txtMsg.setText( getSessionBean1().getMsg() ); getSessionBean1().setMsg( "" ); } /** *

Callback method that is called after rendering is completed for * this request, if init() was called (regardless of whether * or not this was the page that was actually rendered). Customize this * method to release resources acquired in the init(), * preprocess(), or prerender() methods (or * acquired during execution of an event handler).

*/ @Override public void destroy() { } /** *

Return a reference to the scoped data bean.

*/ protected SessionBean1 getSessionBean1() { return ( SessionBean1 ) getBean( "SessionBean1" ); } /** *

Return a reference to the scoped data bean.

*/ protected RequestBean1 getRequestBean1() { return ( RequestBean1 ) getBean( "RequestBean1" ); } /** *

Return a reference to the scoped data bean.

*/ 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; } }