/* * 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.sql.Connection; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.GregorianCalendar; import javax.faces.FacesException; import javax.faces.component.html.HtmlPanelGrid; import javax.faces.context.ExternalContext; import javax.servlet.ServletContext; import javax.servlet.http.HttpSession; 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 { //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.
*/ 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 //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.
*/ 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.
*/ 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).
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"; } 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(); // só 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.getCausasList()); } 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; } }