817 lines
28 KiB
Plaintext
Executable File
817 lines
28 KiB
Plaintext
Executable File
package com.fp.frontend.controller.security;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.HashMap;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
|
|
import javax.annotation.PostConstruct;
|
|
import javax.annotation.PreDestroy;
|
|
import javax.faces.application.NavigationHandler;
|
|
import javax.faces.bean.ManagedBean;
|
|
import javax.faces.bean.SessionScoped;
|
|
import javax.faces.context.ExternalContext;
|
|
import javax.faces.context.FacesContext;
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
|
import org.primefaces.context.RequestContext;
|
|
import org.primefaces.model.StreamedContent;
|
|
|
|
import com.fp.dto.Request;
|
|
import com.fp.dto.Response;
|
|
import com.fp.dto.query.DtoQuery;
|
|
import com.fp.frontend.controller.alfresco.AlfrescoController;
|
|
import com.fp.frontend.controller.armas.parametros.CentroControlArmasController;
|
|
import com.fp.frontend.controller.pgeneral.gene.CatalogDetailController;
|
|
import com.fp.frontend.controller.pgeneral.gene.ParametersController;
|
|
import com.fp.frontend.controller.pgeneral.gene.TerminosCondicionesController;
|
|
import com.fp.frontend.helper.CallerHelper;
|
|
import com.fp.frontend.helper.MessageHelper;
|
|
import com.fp.frontend.utility.EnumParametros;
|
|
import com.fp.persistence.commondb.exception.CommondbException;
|
|
import com.fp.persistence.parmas.param.TarmCentroControl;
|
|
import com.fp.persistence.parmas.soli.TarmTerminos;
|
|
import com.fp.persistence.pgeneral.gene.TgeneCatalogDetail;
|
|
import com.fp.persistence.pgeneral.safe.TsafeUserDetail;
|
|
import com.fp.persistence.pgeneral.safe.TsafeUserProfile;
|
|
|
|
/**
|
|
* @author jorge
|
|
*
|
|
*/
|
|
@ManagedBean
|
|
@SessionScoped
|
|
public class LoginController {
|
|
|
|
private Request request;
|
|
|
|
private MaiaMenu maiaMenu;
|
|
|
|
/**
|
|
* Informacion temporal a utilizar en cualquier controlador o pantalla del index, usuario password.
|
|
*/
|
|
private Map<String, Object> mdata = new HashMap<String, Object>();
|
|
|
|
/**
|
|
* Datos de localizacion del usaurio, cia, suc, ofia, perfil, canal, area, etc.
|
|
*/
|
|
private final Map<String, Object> mlocation = new HashMap<String, Object>();
|
|
|
|
/**
|
|
* Lista de companias.
|
|
*/
|
|
private List<Map<String, Object>> lcompany;
|
|
|
|
/**
|
|
* Lista de perfiles asociados al usuario que hace login a la aplicacion.
|
|
*/
|
|
private List<TsafeUserProfile> lprofile;
|
|
|
|
/**
|
|
* Bandera que indica si el usuario tiene que cambiar el password (Y) cambia el password .
|
|
*/
|
|
private String changepassword;
|
|
|
|
/**
|
|
* Indica que renderiza el campo para autorizar o negar una tarea de JBPM.
|
|
*/
|
|
private boolean renderBpmData = false;
|
|
|
|
/**
|
|
* Url logout del cas
|
|
*/
|
|
private String casLogoutUrl;
|
|
|
|
/**
|
|
* Codigo de perfil con el que se logea el usuario.
|
|
*/
|
|
private String profilecode;
|
|
/**
|
|
* Ruta del documento de los terminos y condiciones
|
|
*/
|
|
private String rutaTerminos;
|
|
|
|
private StreamedContent content;
|
|
|
|
// @ManagedProperty(value = "#{terminosCondicionesController}")
|
|
// private TerminosCondicionesController terminos;
|
|
|
|
// @ManagedProperty(value = "#{alfrescoController}")
|
|
// private AlfrescoController alfrescoController;
|
|
|
|
@PostConstruct
|
|
private void postconstruct() {
|
|
request = new Request();
|
|
request.setCompany(1);
|
|
// Ip cliente
|
|
HttpServletRequest httpServletRequest = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
|
|
request.setTerminalCode(httpServletRequest.getRemoteAddr());
|
|
request.put("ip", httpServletRequest.getRemoteAddr());
|
|
request.put("host", httpServletRequest.getLocalAddr());
|
|
// this.request.put("jsessionid",
|
|
// httpServletRequest.getSession().getId());
|
|
|
|
this.fillCompanies();
|
|
maiaMenu = new MaiaMenu();
|
|
}
|
|
|
|
/*
|
|
public void authenticate() throws Throwable {
|
|
try {
|
|
String user = mdata.get("a").toString();
|
|
String pass = mdata.get("b").toString();
|
|
request.put("login", user);
|
|
CallerHelper ch = new CallerHelper();
|
|
Response resp = ch.login(request, user, pass);
|
|
//validamos si aceptados los terminos y condiciones
|
|
TarmTerminos terminos=TerminosCondicionesController.findxIdentificacion(user);
|
|
if(resp.getResponseCode().compareTo(Response.RESPONSE_OK) == 0 && terminos==null){
|
|
System.out.println("terminos");
|
|
try {
|
|
rutaTerminos=ParametersController.find("CODIGO.TERMINOS.COND", "1").getTextvalue();
|
|
content=AlfrescoController.downloadDocument(rutaTerminos);
|
|
} catch (Exception e) {
|
|
System.out.println("error al obtener el parametro CODIGO.TERMINOS.COND");
|
|
}
|
|
//abre el dialogo que acepte
|
|
RequestContext requestContext = RequestContext.getCurrentInstance();
|
|
requestContext.execute("PF('aceptaTerminosCond').show()");
|
|
}else
|
|
if (resp.getResponseCode().compareTo(Response.RESPONSE_OK) == 0) {
|
|
TsafeUserDetail tsafeUserDetail = (TsafeUserDetail) resp.get("TSAFEUSERDETAIL");
|
|
this.manageloginresponse(tsafeUserDetail);
|
|
FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("TSAFEUSERDETAIL", tsafeUserDetail);
|
|
|
|
// Con esto pasa por el filtro de compresion.
|
|
FacesContext ctx = FacesContext.getCurrentInstance();
|
|
ExternalContext externalContext = ctx.getExternalContext();
|
|
NavigationHandler handler = ctx.getApplication().getNavigationHandler();
|
|
handler.handleNavigation(ctx, null, "workspace");
|
|
|
|
// Fija en browser y SO
|
|
request.setBrowser(this.obtainBrowserName(externalContext.getRequestHeaderMap().get("User-Agent")));
|
|
request.setOperativesystem(this.obtainSOName(externalContext.getRequestHeaderMap().get("User-Agent")));
|
|
|
|
// Obtiene y arma el menu del primer perfil.
|
|
this.changeprofile();
|
|
} else {
|
|
MessageHelper.setMessageError(resp);
|
|
}
|
|
|
|
} catch (Exception e) {
|
|
MessageHelper.setMessageError(e);
|
|
}
|
|
|
|
}*/
|
|
|
|
public void authenticate() throws Throwable {
|
|
System.out.println("autentificacion debe cambiar : ");
|
|
try {
|
|
System.out.println("changepassword debe cambiar : ");
|
|
String user = mdata.get("a").toString();
|
|
String pass = mdata.get("b").toString();
|
|
request.put("login", user);
|
|
CallerHelper ch = new CallerHelper();
|
|
Response resp = ch.login(request, user, pass);
|
|
// validamos si aceptados los terminos y condiciones
|
|
TarmTerminos terminos = TerminosCondicionesController.findxIdentificacion(user);
|
|
if (resp.getResponseCode().compareTo(Response.RESPONSE_OK) == 0 && terminos == null) {
|
|
System.out.println("terminos");
|
|
try {
|
|
rutaTerminos = ParametersController.find("CODIGO.TERMINOS.COND", "1").getTextvalue();
|
|
content = AlfrescoController.downloadDocument(rutaTerminos);
|
|
} catch (Exception e) {
|
|
System.out.println("error al obtener el parametro CODIGO.TERMINOS.COND");
|
|
}
|
|
// abre el dialogo que acepte
|
|
RequestContext requestContext = RequestContext.getCurrentInstance();
|
|
requestContext.execute("PF('aceptaTerminosCond').show()");
|
|
} else if (resp.getResponseCode().compareTo(Response.RESPONSE_OK) == 0) {
|
|
TsafeUserDetail tsafeUserDetail = (TsafeUserDetail) resp.get("TSAFEUSERDETAIL");
|
|
this.manageloginresponse(tsafeUserDetail);
|
|
FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("TSAFEUSERDETAIL",
|
|
tsafeUserDetail);
|
|
|
|
// Con esto pasa por el filtro de compresion.
|
|
//System.out.println("changepassword debe cambiar : " + changepassword + " VVVV"
|
|
// + tsafeUserDetail.getRecordversion());
|
|
|
|
/* FacesContext ctx = FacesContext.getCurrentInstance();
|
|
ExternalContext externalContext = ctx.getExternalContext();
|
|
NavigationHandler handler = ctx.getApplication().getNavigationHandler();
|
|
handler.handleNavigation(ctx, null, "workspace");
|
|
|
|
// Fija en browser y SO
|
|
// request.setBrowser(this.obtainBrowserName(externalContext.getRequestHeaderMap().get("User-Agent")));
|
|
// request.setOperativesystem(this.obtainSOName(externalContext.getRequestHeaderMap().get("User-Agent")));
|
|
|
|
// Obtiene y arma el menu del primer perfil.
|
|
this.changeprofile();
|
|
*/
|
|
if (changepassword.equalsIgnoreCase("N")) {
|
|
|
|
|
|
FacesContext ctx = FacesContext.getCurrentInstance();
|
|
ExternalContext externalContext = ctx.getExternalContext();
|
|
NavigationHandler handler = ctx.getApplication().getNavigationHandler();
|
|
handler.handleNavigation(ctx, null, "workspace");
|
|
// ctx.getExternalContext().dispatch("/pages/workspace.xhtml");
|
|
externalContext.redirect(externalContext.getRequestContextPath() + "/" + "pages/workspace.xhtml");
|
|
// Fija en browser y SO
|
|
request.setBrowser(this.obtainBrowserName(externalContext.getRequestHeaderMap().get("User-Agent")));
|
|
request.setOperativesystem(
|
|
this.obtainSOName(externalContext.getRequestHeaderMap().get("User-Agent")));
|
|
|
|
// Obtiene y arma el menu del primer perfil.
|
|
this.changeprofile();
|
|
|
|
} else {
|
|
//Redirecciona al cambio de clave
|
|
// System.out.println("debe cambiar la clave : " + changepassword);
|
|
ExternalContext ec = FacesContext.getCurrentInstance().getExternalContext();
|
|
ec.redirect(ec.getRequestContextPath() + "/" + "change-password.xhtml");
|
|
System.out.println(
|
|
"debe cambiar la clave : " + ec.getRequestContextPath() + "/" + "passwordExpired.xhtml");
|
|
}
|
|
} else {
|
|
MessageHelper.setMessageError(resp);
|
|
}
|
|
|
|
} catch (Exception e) {
|
|
MessageHelper.setMessageError(e);
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
* Nuevo boton de terminos y condiciones
|
|
*/
|
|
public void aceptaTerminosCondicion(){
|
|
String user = mdata.get("a").toString();
|
|
String pass = mdata.get("b").toString();
|
|
CallerHelper ch;
|
|
try {
|
|
ch = new CallerHelper();
|
|
|
|
request.put("terminos","terminos");
|
|
request.put("aceptaterminos","SI");
|
|
request.put("identificacionterminos",user);
|
|
request.put("documentoterminos",rutaTerminos);
|
|
|
|
Response resp = ch.login(request, user, pass);
|
|
|
|
TsafeUserDetail tsafeUserDetail = (TsafeUserDetail) resp.get("TSAFEUSERDETAIL");
|
|
this.manageloginresponse(tsafeUserDetail);
|
|
FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("TSAFEUSERDETAIL", tsafeUserDetail);
|
|
|
|
// System.out.println("changepassword debe cambiar : "
|
|
// + tsafeUserDetail.getChangepassword());
|
|
|
|
if (tsafeUserDetail.getChangepassword().equalsIgnoreCase("N")) {
|
|
|
|
|
|
FacesContext ctx = FacesContext.getCurrentInstance();
|
|
ExternalContext externalContext = ctx.getExternalContext();
|
|
NavigationHandler handler = ctx.getApplication().getNavigationHandler();
|
|
handler.handleNavigation(ctx, null, "workspace");
|
|
// ctx.getExternalContext().dispatch("/pages/workspace.xhtml");
|
|
//Redirecciona al workspace
|
|
externalContext.redirect(externalContext.getRequestContextPath() + "/" + "pages/workspace.xhtml");
|
|
// Fija en browser y SO
|
|
request.setBrowser(this.obtainBrowserName(externalContext.getRequestHeaderMap().get("User-Agent")));
|
|
request.setOperativesystem(
|
|
this.obtainSOName(externalContext.getRequestHeaderMap().get("User-Agent")));
|
|
|
|
// Obtiene y arma el menu del primer perfil.
|
|
this.changeprofile();
|
|
|
|
} else {
|
|
|
|
//System.out.println("debe cambiar la clave : " );
|
|
//Redirecciona al cambio de clave
|
|
ExternalContext ec = FacesContext.getCurrentInstance().getExternalContext();
|
|
ec.redirect(ec.getRequestContextPath() + "/" + "change-password.xhtml");
|
|
System.out.println(
|
|
"debe cambiar la clave : " + ec.getRequestContextPath() + "/" + "passwordExpired.xhtml");
|
|
}
|
|
|
|
|
|
|
|
} catch (Exception e) {
|
|
// TODO Auto-generated catch block
|
|
e.printStackTrace();
|
|
} catch (Throwable e) {
|
|
// TODO Auto-generated catch block
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
|
|
public void authenticateCas(String username, String urlCasLogout) throws Throwable {
|
|
try {
|
|
casLogoutUrl = urlCasLogout;
|
|
request.put("login", username);
|
|
CallerHelper ch = new CallerHelper();
|
|
Response resp = ch.loginCas(request, username, null);
|
|
if (resp.getResponseCode().compareTo(Response.RESPONSE_OK) == 0) {
|
|
TsafeUserDetail tsafeUserDetail = (TsafeUserDetail) resp.get("TSAFEUSERDETAIL");
|
|
this.manageloginresponse(tsafeUserDetail);
|
|
FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("TSAFEUSERDETAIL", tsafeUserDetail);
|
|
|
|
// Con esto pasa por el filtro de compresion.
|
|
//FacesContext ctx = FacesContext.getCurrentInstance();
|
|
// NavigationHandler handler =
|
|
// ctx.getApplication().getNavigationHandler();
|
|
// handler.handleNavigation(ctx, null, "workspace");
|
|
|
|
// Obtiene y arma el menu del primer perfil.
|
|
this.changeprofile();
|
|
} else {
|
|
throw new Exception(resp.getResponseCode() + " " + resp.getResponseUserMessage());
|
|
}
|
|
} catch (Exception e) {
|
|
|
|
throw e;
|
|
}
|
|
}
|
|
|
|
public void updateusesession() {
|
|
System.out.println("logout::cerrando session");
|
|
try {
|
|
CallerHelper ch = new CallerHelper();
|
|
ch.logout(request);
|
|
} catch (Throwable e) {
|
|
// no hacer nada
|
|
}
|
|
|
|
}
|
|
|
|
public String logout() {
|
|
System.out.println("logout::cerrando session bean");
|
|
this.updateusesession();
|
|
FacesContext fc = FacesContext.getCurrentInstance();
|
|
if(fc!=null){
|
|
fc.getExternalContext().invalidateSession();
|
|
}
|
|
return "/login?faces-redirect=true";
|
|
}
|
|
|
|
|
|
|
|
|
|
@SuppressWarnings("unchecked")
|
|
private void manageloginresponse(TsafeUserDetail userdetail) {
|
|
mlocation.put("cia", userdetail.get("cn"));
|
|
mlocation.put("branch", userdetail.get("bn"));
|
|
mlocation.put("office", userdetail.get("on"));
|
|
mlocation.put("area", userdetail.get("an"));
|
|
mlocation.put("channel", userdetail.get("chn"));
|
|
mlocation.put("accodate", userdetail.get("ad"));
|
|
mlocation.put("workdate", userdetail.get("wd"));
|
|
mlocation.put("nickname", userdetail.getNickname());
|
|
mlocation.put("sbsemployee", userdetail.get("sbsemployee"));
|
|
mlocation.put("sbsusercode", userdetail.get("sbsusercode"));
|
|
obtenerCentroControl(userdetail);
|
|
obtenerUnidadControl(userdetail);
|
|
request.setUser(userdetail.getPk().getUsercode());
|
|
request.setCompany(userdetail.getCompanycode());
|
|
request.setBranchCode(userdetail.getBranchcode());
|
|
request.setOfficeCode(userdetail.getOfficecode());
|
|
request.setChannelCode(userdetail.getChannelcode());
|
|
request.setLanguage(userdetail.getLanguagecode());
|
|
request.setCentrocontrol(userdetail.getCcentrocontrol());
|
|
|
|
changepassword = userdetail.getChangepassword();
|
|
lprofile = (List<TsafeUserProfile>) userdetail.get("lprofile");
|
|
request.setProfile(lprofile.get(0).getPk().getProfilecode());
|
|
}
|
|
|
|
private void obtenerCentroControl(TsafeUserDetail userdetail) {
|
|
TgeneCatalogDetail tcentrocontrol=null;
|
|
try {
|
|
TarmCentroControl centroControl = CentroControlArmasController.findPorCodigo(userdetail.getCcentrocontrol());
|
|
|
|
if (centroControl != null) {
|
|
tcentrocontrol = CatalogDetailController.findCatalogo(centroControl.getInstituciontipo(), centroControl.getInstitucion());
|
|
|
|
}
|
|
|
|
} catch (CommondbException e) {
|
|
|
|
} catch (Exception e) {
|
|
|
|
}
|
|
|
|
if(tcentrocontrol != null){
|
|
userdetail.addAddtionalInfo("centrocontrol", tcentrocontrol.getDescription());
|
|
mlocation.put("centrocontrol", tcentrocontrol.getDescription());
|
|
|
|
}else{
|
|
userdetail.addAddtionalInfo("centrocontrol", "");
|
|
mlocation.put("centrocontrol", "");
|
|
}
|
|
|
|
}
|
|
|
|
private void obtenerUnidadControl(TsafeUserDetail userdetail) {
|
|
TgeneCatalogDetail unidad=null;
|
|
try {
|
|
TarmCentroControl centroControl = CentroControlArmasController.findPorCodigo(userdetail.getCcentrocontrol());
|
|
|
|
if (centroControl != null) {
|
|
unidad = CatalogDetailController.findCatalogo(centroControl.getNombreinstitucioncodigo(), centroControl.getNombreinstitucion());
|
|
|
|
}
|
|
|
|
} catch (CommondbException e) {
|
|
|
|
} catch (Exception e) {
|
|
|
|
}
|
|
|
|
if(unidad!=null){
|
|
userdetail.addAddtionalInfo("unidad", unidad.getDescription());
|
|
mlocation.put("unidad", unidad.getDescription());
|
|
}else{
|
|
userdetail.addAddtionalInfo("unidad", "");
|
|
mlocation.put("unidad", "");
|
|
}
|
|
|
|
}
|
|
|
|
@SuppressWarnings({ "unchecked" })
|
|
public void changeprofile() throws Exception {
|
|
try {
|
|
if (profilecode != null) {
|
|
request.setProfile(profilecode);
|
|
}
|
|
CallerHelper ch = new CallerHelper();
|
|
Response resp = ch.menu(request);
|
|
|
|
if (resp.getResponseCode().compareTo(Response.RESPONSE_OK) == 0) {
|
|
Map<String, Object> rootmenu = (Map<String, Object>) resp.get("rootmenu");
|
|
List<Map<String, Object>> lmenu = (List<Map<String, Object>>) rootmenu.get("items");
|
|
maiaMenu.buildMenu(lmenu);
|
|
} else {
|
|
MessageHelper.setMessageError(resp);
|
|
}
|
|
} catch (Throwable e) {
|
|
MessageHelper.setMessageError(e);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Obtiene lista de compania.
|
|
*/
|
|
@SuppressWarnings("unchecked")
|
|
private void fillCompanies() {
|
|
try {
|
|
CallerHelper ch = new CallerHelper();
|
|
Request request = new Request();
|
|
DtoQuery dto = new DtoQuery(null, null, null, true, null);
|
|
|
|
HashMap<String, DtoQuery> mtables = new HashMap<String, DtoQuery>();
|
|
mtables.put("CIAS", dto); // permite adicionar mas de una tabla.
|
|
request.setCompany(1);
|
|
request.getModifiedData().put("queryalias", "COMPANY");
|
|
request.setQueryTables(mtables);
|
|
|
|
Response resp = ch.executeQuery(request);
|
|
|
|
if (resp.getResponseCode().compareTo(Response.RESPONSE_OK) != 0) {
|
|
lcompany = new ArrayList<Map<String, Object>>();
|
|
MessageHelper.setMessageError(resp);
|
|
} else {
|
|
lcompany = (List<Map<String, Object>>) resp.get("CIAS");
|
|
}
|
|
} catch (Throwable e) {
|
|
MessageHelper.setMessageError(e);
|
|
}
|
|
}
|
|
|
|
public void fijaRequestData(Request request, String transactionmodule, Integer transactioncode, Integer transactionversion) throws Exception {
|
|
request.setCompany(this.request.getCompany());
|
|
request.setCentrocontrol(this.request.getCentrocontrol());
|
|
request.setUnidad(this.request.getUnidad());
|
|
request.setBranchCode(this.request.getBranchCode());
|
|
request.setOfficeCode(this.request.getOfficeCode());
|
|
request.setUser(this.request.getUser());
|
|
request.setLanguage(this.request.getLanguage());
|
|
request.setChannelCode(this.request.getChannelCode());
|
|
request.setTerminalCode(this.request.getTerminalCode());
|
|
request.setProfile(this.request.getProfile());
|
|
request.setBrowser(this.request.getBrowser());
|
|
request.setOperativesystem(this.request.getOperativesystem());
|
|
|
|
// datos de la transaccion de ejecucion.
|
|
request.setTransactionModule(transactionmodule);
|
|
request.setTransactionCode(transactioncode);
|
|
request.setTransactionVersion(transactionversion);
|
|
}
|
|
|
|
/**
|
|
* Obtiene el nombre del browser
|
|
*
|
|
* @param userAgent
|
|
* @return
|
|
*/
|
|
private String obtainBrowserName(String userAgent) {
|
|
|
|
if (userAgent.contains("MSIE")) {
|
|
return this.buildBrowser(userAgent, "MSIE");
|
|
}
|
|
if (userAgent.contains("Firefox")) {
|
|
return this.buildBrowser(userAgent, "Firefox");
|
|
}
|
|
if (userAgent.contains("Chrome")) {
|
|
return this.buildBrowser(userAgent, "Chrome");
|
|
}
|
|
if (userAgent.contains("Opera")) {
|
|
return this.buildBrowser(userAgent, "Opera");
|
|
}
|
|
if (userAgent.contains("Safari")) {
|
|
return this.buildBrowser(userAgent, "Safari");
|
|
}
|
|
return "Unknown";
|
|
}
|
|
|
|
/**
|
|
* Obtiene el nombre del Sistema Operativo
|
|
*
|
|
* @param userAgent
|
|
* @return
|
|
*/
|
|
private String obtainSOName(String userAgent) {
|
|
String os = "";
|
|
if (userAgent.contains("Windows")) {
|
|
os = this.buildOS(userAgent, "Windows");
|
|
} else if (userAgent.contains("Mac")) {
|
|
os = this.buildOS(userAgent, "Mac");
|
|
} else if (userAgent.contains("Linux")) {
|
|
os = this.buildOS(userAgent, "Linux");
|
|
} else if (userAgent.contains("android")) {
|
|
os = this.buildOS(userAgent, "android");
|
|
} else if (userAgent.contains("iphone")) {
|
|
os = this.buildOS(userAgent, "iphone");
|
|
} else {
|
|
os = "UnKnown, More-Info: " + userAgent;
|
|
}
|
|
return os;
|
|
}
|
|
|
|
/**
|
|
* Arma la respuesta del User-Agent
|
|
*
|
|
* @param userAgent
|
|
* @param id
|
|
* @return browser
|
|
*/
|
|
private String buildBrowser(String userAgent, String id) {
|
|
String browser = "";
|
|
if (userAgent.contains("MSIE")) {
|
|
String[] value = userAgent.substring(userAgent.indexOf(id), userAgent.length()).split(" ");
|
|
browser = value[0] + " " + value[1];
|
|
} else {
|
|
String[] value = userAgent.substring(userAgent.indexOf(id), userAgent.length()).split(" ");
|
|
browser = value[0];
|
|
}
|
|
return browser;
|
|
}
|
|
|
|
/**
|
|
* Arma la respuesta del User-Agent
|
|
*
|
|
* @param userAgent
|
|
* @param id
|
|
* @return browser
|
|
*/
|
|
private String buildOS(String userAgent, String id) {
|
|
String so = "";
|
|
if (userAgent.contains("Windows")) {
|
|
String[] value = userAgent.substring(userAgent.indexOf(id), userAgent.length()).split(" ");
|
|
so = value[0] + " " + value[1] + " " + value[2];
|
|
} else {
|
|
String[] value = userAgent.substring(userAgent.indexOf(id), userAgent.length()).split(" ");
|
|
so = value[0] + " " + value[1];
|
|
}
|
|
return so;
|
|
}
|
|
|
|
/**
|
|
* Entrega el valor de: lcompany
|
|
*
|
|
* @return List<Map<String,Object>>
|
|
*/
|
|
public List<Map<String, Object>> getLcompany() {
|
|
return lcompany;
|
|
}
|
|
|
|
/**
|
|
* Fija el valor de: lcompany
|
|
*
|
|
* @param Valor a fijar en el atributo.
|
|
*/
|
|
public void setLcompany(List<Map<String, Object>> lcompany) {
|
|
this.lcompany = lcompany;
|
|
}
|
|
|
|
/**
|
|
* Entrega el valor de: lprofile
|
|
*
|
|
* @return List<TsafeUserProfile>
|
|
*/
|
|
public List<TsafeUserProfile> getLprofile() {
|
|
return lprofile;
|
|
}
|
|
|
|
/**
|
|
* Fija el valor de: lprofile
|
|
*
|
|
* @param Valor a fijar en el atributo.
|
|
*/
|
|
public void setLprofile(List<TsafeUserProfile> lprofile) {
|
|
this.lprofile = lprofile;
|
|
}
|
|
|
|
/**
|
|
* Entrega el valor de: changepassword
|
|
*
|
|
* @return String
|
|
*/
|
|
public String getChangepassword() {
|
|
return changepassword;
|
|
}
|
|
|
|
/**
|
|
* Fija el valor de: changepassword
|
|
*
|
|
* @param Valor a fijar en el atributo.
|
|
*/
|
|
public void setChangepassword(String changepassword) {
|
|
this.changepassword = changepassword;
|
|
}
|
|
|
|
/**
|
|
* Entrega el valor de: mdata
|
|
*
|
|
* @return Map<String,Object>
|
|
*/
|
|
public Map<String, Object> getMdata() {
|
|
return mdata;
|
|
}
|
|
|
|
/**
|
|
* Fija el valor de: mdata
|
|
*
|
|
* @param Valor a fijar en el atributo.
|
|
*/
|
|
public void setMdata(Map<String, Object> mdata) {
|
|
this.mdata = mdata;
|
|
}
|
|
|
|
/**
|
|
* Entrega el valor de: request
|
|
*
|
|
* @return Request
|
|
*/
|
|
public Request getRequest() {
|
|
return request;
|
|
}
|
|
|
|
/**
|
|
* Fija el valor de: request
|
|
*
|
|
* @param Valor a fijar en el atributo.
|
|
*/
|
|
public void setRequest(Request request) {
|
|
this.request = request;
|
|
}
|
|
|
|
/**
|
|
* Entrega el valor de: maiaMenu
|
|
*
|
|
* @return MaiaMenu
|
|
*/
|
|
public MaiaMenu getMaiaMenu() {
|
|
return maiaMenu;
|
|
}
|
|
|
|
/**
|
|
* Fija el valor de: maiaMenu
|
|
*
|
|
* @param Valor a fijar en el atributo.
|
|
*/
|
|
public void setMaiaMenu(MaiaMenu maiaMenu) {
|
|
this.maiaMenu = maiaMenu;
|
|
}
|
|
|
|
/**
|
|
* Entrega el valor de: mlocation
|
|
*
|
|
* @return Map<String,Object>
|
|
*/
|
|
public Map<String, Object> getMlocation() {
|
|
return mlocation;
|
|
}
|
|
|
|
/**
|
|
* Entrega el valor de: renderBpmData
|
|
*
|
|
* @return boolean
|
|
*/
|
|
public boolean isRenderBpmData() {
|
|
return renderBpmData;
|
|
}
|
|
|
|
/**
|
|
* Fija el valor de: renderBpmData
|
|
*
|
|
* @param renderBpmData Valor a fijar en el atributo.
|
|
*/
|
|
public void setRenderBpmData(boolean renderBpmData) {
|
|
this.renderBpmData = renderBpmData;
|
|
}
|
|
|
|
public String getCasLogoutUrl() {
|
|
return casLogoutUrl;
|
|
}
|
|
|
|
public void setCasLogoutUrl(String casLogoutUrl) {
|
|
this.casLogoutUrl = casLogoutUrl;
|
|
}
|
|
|
|
/**
|
|
* Entrega el valor de: profilecode
|
|
*
|
|
* @return String
|
|
*/
|
|
public String getProfilecode() {
|
|
return profilecode;
|
|
}
|
|
|
|
/**
|
|
* Fija el valor de: profilecode
|
|
*
|
|
* @param profilecode
|
|
*/
|
|
public void setProfilecode(String profilecode) {
|
|
this.profilecode = profilecode;
|
|
}
|
|
|
|
/**
|
|
* Metodo para obtener el documento de ayuda
|
|
*/
|
|
public void help() throws Exception {
|
|
String m = request.getTransactionModule();
|
|
String t = request.getTransactionCode().toString();
|
|
String v = request.getTransactionVersion().toString();
|
|
String p = ParametersController.find(EnumParametros.PATH_ALFRESCO_AYUDA.getCodigo(), request.getCompany().toString()).getTextvalue();
|
|
RequestContext.getCurrentInstance().execute("Maiaworkspace.loadHelp('" + m + "', '" + t + "', '" + v + "', '" + p + "')");
|
|
}
|
|
|
|
@PreDestroy
|
|
private void closeSessionMaia() {
|
|
try {
|
|
FacesContext fc = FacesContext.getCurrentInstance();
|
|
if(fc!=null){
|
|
this.logout();
|
|
}
|
|
} catch (Exception e) {
|
|
// no hacer nada.
|
|
}
|
|
}
|
|
|
|
// public TerminosCondicionesController getTerminos() {
|
|
// return terminos;
|
|
// }
|
|
//
|
|
// public void setTerminos(TerminosCondicionesController terminos) {
|
|
// this.terminos = terminos;
|
|
// }
|
|
|
|
// public AlfrescoController getAlfrescoController() {
|
|
// return alfrescoController;
|
|
// }
|
|
//
|
|
// public void setAlfrescoController(AlfrescoController alfrescoController) {
|
|
// this.alfrescoController = alfrescoController;
|
|
// }
|
|
|
|
public String getRutaTerminos() {
|
|
return rutaTerminos;
|
|
}
|
|
|
|
public void setRutaTerminos(String rutaTerminos) {
|
|
this.rutaTerminos = rutaTerminos;
|
|
}
|
|
|
|
public StreamedContent getContent() {
|
|
return content;
|
|
}
|
|
|
|
public void setContent(StreamedContent content) {
|
|
this.content = content;
|
|
}
|
|
|
|
|
|
}
|