edu.uoc.tcfj2ee_gatd.controlador.usuaris
Class ControladorSessio

java.lang.Object
  extended by edu.uoc.tcfj2ee_gatd.controlador.EJBControlador
      extended by edu.uoc.tcfj2ee_gatd.controlador.usuaris.ControladorSessio

@RolesAllowed(value={"Tecnic","Client","Controlador"})
public class ControladorSessio
extends EJBControlador

Controlador MVC, responsable de la gestió de les sessions.

Implementa el fi de sessió, manté el "locale" de les pàgines JSF i proporciona l'usuari a qui correspon la sessió. També ofereix una funció de "forward".

Conté fragments de codi trets del llibre "Beginning JSF™ 2 APIs and JBoss® Seam" de Kent Ka Iok Tong. Ed. Apress, maig 2009.

Per a la detecció de l'ús d'un micro-nagegador, es fa servir el mètode proporcionat per http://detectmobilebrowser.com/

Author:
Jordi Tejero, Kent Ka Iok Tong, http://detectmobilebrowser.com/

Field Summary
static java.lang.String ATRIBUT_IDIOMA
          Nom de l'atribut de la sessió HTTP on es guarda el codi de l'idioma
 
Constructor Summary
ControladorSessio()
           
 
Method Summary
(package private)  void afegeixHistorial(java.lang.String via, java.lang.String qs)
          Afegeix una pàgina a l'historial
(package private)  boolean canviaIdiomaUsuari(Usuari u)
          Si l'usuari que s'indica és el de la sessió, canvia l'idioma de la interfície per a que coincideixi amb el de l'usuari
 void entra()
          Entrada en funció del role de l'usuari.
 java.util.List<javax.faces.model.SelectItem> getCodisIdiomes()
          Dona una llista de "select items" amb els codis de llenguatge disponibles
 java.lang.String getNomUsuari()
          Dona el nom d'usuari d'aquell a qui pertany la sessió
 java.lang.String getParamHttp(java.lang.String rexpParam)
          Dona el valor del primer paràmetre de la petició http, que encaixi amb una expressió regular
 java.lang.String[] getParamsHttp(java.lang.String nomParam)
          Dona els valors d'un paràmetre de la petició HTTP, donat pel seu nom
(package private)  java.lang.String getQueryString()
          Publica la query string de la petició HTTP
 Usuari getUsuari()
          Dona l'usuari qui pertany la sessió.
 void ini()
          Inicialització.
 boolean isMicroNav()
          Diu si la visualització s'ha de fer amb un micro-navegador.
 java.lang.String logOut()
          Finalitza la sessió.
 java.lang.String pagDarrera()
          Dona la darrera pàgina visitada a l'historial, o null si no n'hi ha cap
 java.lang.String pagPrevia()
          Dona la pàgina visitada abans de l'actual, o null si no hi ha cap de prèvia
 void redireccio(java.lang.String pag)
          Implementació de "redirect".
 void setHistorialSessio(HistorialSessio historialSessio)
          Permet la injecció de l'historial de la sessió.
 void setPeticioHttp(javax.servlet.http.HttpServletRequest peticioHttp)
          Permet la injecció de la petició HTTP
 void setSessioHttp(javax.servlet.http.HttpSession httpSession)
          Permet la injecció de la sessió http
 void vesA(java.lang.String pag)
          Implementació de "forward".
 
Methods inherited from class edu.uoc.tcfj2ee_gatd.controlador.EJBControlador
getLogger, getMsg, getMsg1, pintaError, pintaError, pintaError, pintaError, pintaError, pintaInfo, pintaInfo, pintaInfoComp
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ATRIBUT_IDIOMA

public static final java.lang.String ATRIBUT_IDIOMA
Nom de l'atribut de la sessió HTTP on es guarda el codi de l'idioma

See Also:
Constant Field Values
Constructor Detail

ControladorSessio

public ControladorSessio()
Method Detail

setSessioHttp

public void setSessioHttp(javax.servlet.http.HttpSession httpSession)
Permet la injecció de la sessió http

Parameters:
sessioHttp - la sessió http

setPeticioHttp

public void setPeticioHttp(javax.servlet.http.HttpServletRequest peticioHttp)
Permet la injecció de la petició HTTP

Parameters:
peticioHttp - el nou valor de l'atribut peticioHttp

getQueryString

java.lang.String getQueryString()
Publica la query string de la petició HTTP

Returns:
la "query sting", o null si no hi ha petició HTTP.

setHistorialSessio

public void setHistorialSessio(HistorialSessio historialSessio)
Permet la injecció de l'historial de la sessió.

Parameters:
historialSessio - el nou valor de l'atribut historialSessio

afegeixHistorial

void afegeixHistorial(java.lang.String via,
                      java.lang.String qs)
Afegeix una pàgina a l'historial

Parameters:
via - el "path" de la pàgina
qs - la "query string" de la pàgina

ini

@PostConstruct
public void ini()
Inicialització. Determina l'usuari de la sessió HTTP i estableix el seu idioma per a l'interficie.


pagPrevia

public java.lang.String pagPrevia()
Dona la pàgina visitada abans de l'actual, o null si no hi ha cap de prèvia

Returns:
la URI de la pàgina prèvia visitada, sense URL-codificar, o null

pagDarrera

public java.lang.String pagDarrera()
Dona la darrera pàgina visitada a l'historial, o null si no n'hi ha cap

Returns:
la URI de la darrera pàgina visitada, sense URL-codificar

getParamsHttp

public java.lang.String[] getParamsHttp(java.lang.String nomParam)
Dona els valors d'un paràmetre de la petició HTTP, donat pel seu nom

Parameters:
nomParam - el nom del paràmetre de la petició HTTP
Returns:
array amb els valors del paràmetre, o null si el paràmetre no és a la petició HTTP

getParamHttp

public java.lang.String getParamHttp(java.lang.String rexpParam)
Dona el valor del primer paràmetre de la petició http, que encaixi amb una expressió regular

Parameters:
rexpParam - cadena amb la expressió regular, R
Returns:
el valor del primer paràmetre P que encaixi amb R, o null si no n'hi ha cap.

isMicroNav

@PermitAll
public boolean isMicroNav()
Diu si la visualització s'ha de fer amb un micro-navegador.

És el cas dels usuaris de classe Tecnic i de tots aquells que facin servir un "user-agent" que es puguin reconèixer com a dispositius mòbil

Returns:
true si l'usuari de la sessió és un tècnic o si fa servir un "user agent" propi de mòbil

entra

@PermitAll
public void entra()
Entrada en funció del role de l'usuari.

Si l'usuari de la sessió s'ha validat, navega cap a la seva pàgina d'entrada. Si no s'ha validat, no fa res.

Parameters:
refPeti - referència de la petició a consultar. Sols pot ser diferent de null en el cas dels tècnics

vesA

public void vesA(java.lang.String pag)
Implementació de "forward". Navega cap a la pàgina que s'indiqui. Cas d'error, simplement l'enregistra

Parameters:
pag - la pàgina a on anar

redireccio

public void redireccio(java.lang.String pag)
Implementació de "redirect". Redirecció cap a la pàgina que s'indiqui. Cas d'error, simplement l'enregistra

Parameters:
pag - la pàgina a on anar

logOut

public java.lang.String logOut()
Finalitza la sessió. Navega fins a la pàgina de comiat.

Returns:
la pàgina pública de comiat

getCodisIdiomes

public java.util.List<javax.faces.model.SelectItem> getCodisIdiomes()
Dona una llista de "select items" amb els codis de llenguatge disponibles

Returns:
la llista de SelectItem amb els llenguatges, amb llenguatge per omissió en primer lloc.

canviaIdiomaUsuari

boolean canviaIdiomaUsuari(Usuari u)
Si l'usuari que s'indica és el de la sessió, canvia l'idioma de la interfície per a que coincideixi amb el de l'usuari

Parameters:
u - l'usuari
Returns:
true sols si s'ha canviat efectivament l'idioma de la interfície

getUsuari

public Usuari getUsuari()
Dona l'usuari qui pertany la sessió.

Returns:
Entitat Usuari de qui ha fet loggin, no gestionada pel gestor de persistència, o null si l'usuari no s'ha identificat

getNomUsuari

public java.lang.String getNomUsuari()
Dona el nom d'usuari d'aquell a qui pertany la sessió

Returns:
el nom amb el que s'ha identificat l'usuari, o null si no ho ha fet