PROYECTO SEGURIDAD 2_0

parents
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jst.server.core.container/org.jboss.ide.eclipse.as.core.server.runtime.runtimeTarget/JBoss EAP 6.1+ Runtime"/>
<classpathentry combineaccessrules="false" kind="src" path="/ServiciosSeguridadEPN"/>
<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/Varios"/>
<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jre">
<attributes>
<attribute name="owner.project.facets" value="java"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="bin"/>
</classpath>
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>SeguridadWebEPN-JSF2</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.wst.common.project.facet.core.builder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.jboss.tools.jst.web.kb.kbbuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.jboss.tools.cdi.core.cdibuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.wst.validation.validationbuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
<nature>org.jboss.tools.jst.web.kb.kbnature</nature>
<nature>org.jboss.tools.cdi.core.cdinature</nature>
</natures>
</projectDescription>
eclipse.preferences.version=1
org.eclipse.jdt.core.builder.cleanOutputFolder=clean
org.eclipse.jdt.core.builder.duplicateResourceTask=warning
org.eclipse.jdt.core.builder.invalidClasspath=abort
org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
org.eclipse.jdt.core.circularClasspath=error
org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
org.eclipse.jdt.core.compiler.compliance=1.7
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.source=1.7
org.eclipse.jdt.core.incompatibleJDKLevel=ignore
org.eclipse.jdt.core.incompleteClasspath=error
#Fri May 27 10:34:07 COT 2011
eclipse.preferences.version=1
org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=warning
XDOCLETBUILDERACTIVE=true
XDOCLETHOME=
XDOCLETUSEGLOBAL=true
XDOCLETVERSION=1.2.1
eclipse.preferences.version=1
<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
<wb-module deploy-name="SeguridadWebEPN-JSF2">
<wb-resource deploy-path="/" source-path="/src"/>
</wb-module>
</project-modules>
<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
<runtime name="JBoss EAP 6.1+ Runtime"/>
<fixed facet="java"/>
<fixed facet="jst.utility"/>
<installed facet="jst.utility" version="1.0"/>
<installed facet="java" version="1.7"/>
</faceted-project>
package ec.edu.epn.seguridad.VO;
import java.io.Serializable;
import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.validator.ValidatorException;
import javax.naming.InitialContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import ec.edu.epn.seguridad.servicio.ServicioSeguridad;
public class CambioClave implements Serializable{
private static final long serialVersionUID = 5313859176084820300L;
private String claveAnterior;
private String claveNueva;
private String claveNueva2;
private ServicioSeguridad ss;
{
try {
InitialContext ctx = new InitialContext();
ss = (ServicioSeguridad) ctx.lookup("java:global/ServiciosSeguridadEPN/ServicioSeguridadBean!ec.edu.epn.seguridad.servicio.ServicioSeguridad");
} catch(Exception e) {
e.printStackTrace();
}
}
public String getClaveAnterior() {
return claveAnterior;
}
public void setClaveAnterior(String claveAnterior) {
this.claveAnterior = claveAnterior;
}
public String getClaveNueva() {
return claveNueva;
}
public void setClaveNueva(String claveNueva) {
this.claveNueva = claveNueva;
}
public String getClaveNueva2() {
return claveNueva2;
}
public void setClaveNueva2(String claveNueva2) {
this.claveNueva2 = claveNueva2;
}
public void validaClaveAnterior(FacesContext fc, UIComponent component, Object valor) throws ValidatorException {
HttpServletRequest request = (HttpServletRequest) fc.getExternalContext().getRequest();
HttpSession session = request.getSession();
SesionUsuario su= (SesionUsuario)session.getAttribute("sesionUsuario");
if (!ss.validarUsuarioPassword(su.getUsuario().getNombreUsuario(), (String)valor)) {
FacesMessage e = new FacesMessage();
e.setSeverity(FacesMessage.SEVERITY_ERROR);
e.setSummary("Clave anterior incorrecta");
throw new ValidatorException(e);
}
}
public void validaClave2(FacesContext fc, UIComponent component, Object valor) throws ValidatorException {
HttpServletRequest request = (HttpServletRequest)fc.getExternalContext().getRequest();
String claveNueva = request.getParameter("formCambio:claveNueva");
if (claveNueva==null || !claveNueva.equals((String)valor)) {
FacesMessage e = new FacesMessage();
e.setSeverity(FacesMessage.SEVERITY_ERROR);
e.setSummary("La clave y la confirmacin no coinciden");
throw new ValidatorException(e);
}
}
public String cambiarClave(){
FacesContext fc = FacesContext.getCurrentInstance();
HttpServletRequest request = (HttpServletRequest) fc.getExternalContext().getRequest();
HttpSession session = request.getSession();
SesionUsuario su= (SesionUsuario)session.getAttribute("sesionUsuario");
ss.actualizarPassword(su.getUsuario().getNombreUsuario(), getClaveNueva());
return "principal";
}
}
package ec.edu.epn.seguridad.VO;
import java.io.Serializable;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Validadores implements Serializable{
/**
*
*/
private static final long serialVersionUID = -817588918225390437L;
private String sucesos = " ";
public static final int NUMERO_DE_PROVINCIAS = 24;
public boolean isNumeric(String entrada){
Pattern patron = Pattern.compile("[^0-9]");
Matcher encaja = patron.matcher(entrada);
setSucesos("");
try {
if(!encaja.find()){
return true;
}
else{
this.setSucesos("No es un numero");
return false;
}
}catch (NumberFormatException nfe){
return false;
}
}
public boolean isString(String entrada){
Pattern patron = Pattern.compile("[^a-zA-Z .]");
Matcher encaja = patron.matcher(entrada);
setSucesos("");
try{
if(!encaja.find()){
return true;
}
else{
this.setSucesos("No es una cadena de caracteres");
return false;
}
}catch (Exception e) {
return false;
}
}
public boolean isCedula(String entrada){
Pattern patron = Pattern.compile("[^0-9]");
Matcher encaja = patron.matcher(entrada);
int prov = Integer.parseInt(entrada.substring(0,2));
setSucesos("");
try {
if(!encaja.find()){
if (entrada.length() < 10) {
this.setSucesos("Cdula incompleta");
return false;
}else if(entrada.length() > 10){
this.setSucesos("Cdula incorrecta");
return false;
}else if(!((prov > 0) && (prov <= NUMERO_DE_PROVINCIAS))) {
this.setSucesos("Cdula incorrecta");
return false;
}
return true;
}
else{
this.setSucesos("No es una cedula");
return false;
}
}catch (NumberFormatException nfe){
return false;
}
}
public boolean isRuc(String entrada){
Pattern patron = Pattern.compile("[^0-9]");
Matcher encaja = patron.matcher(entrada);
setSucesos("");
try{
if(!encaja.find()){
if (entrada.length() != 13) {
this.setSucesos("Ruc incompleto");
return false;
}else
return true;
}
else{
this.setSucesos("No es RUC");
return false;
}
}catch (Exception e) {
this.setSucesos("No es RUC");
return false;
}
}
public boolean isMail(String entrada){
Pattern patron = Pattern.compile("^([a-zA-Z0-9_\\-\\.]+)*[a-zA-Z0-9]@[a-zA-Z]*" +
"[a-zA-Z0-9].[a-zA-Z][a-zA-Z\\.]*[a-zA-Z]$");
Matcher encaja = patron.matcher(entrada);
setSucesos("");
try {
if(!encaja.find()){
return true;
}
else{
this.setSucesos("No es un mail");
return false;
}
} catch (Exception e) {
return false;
}
}
public boolean isFono(String entrada){
Pattern patron = Pattern.compile("[^0-9]");
Matcher encaja = patron.matcher(entrada);
setSucesos("");
try {
if(!encaja.find()){
if (entrada.length() < 7 ) {
this.setSucesos("Telfono incompleto");
return false;
}else
return true;
}else{
this.setSucesos("No es un nmero vlido");
return false;
}
} catch (Exception e) {
return false;
}
}
public String getSucesos() {
return sucesos;
}
public void setSucesos(String sucesos) {
this.sucesos = sucesos;
}
}
package ec.edu.epn.seguridad.VO;
import java.io.Serializable;
import java.util.Collections;
import java.util.List;
import java.util.ArrayList;
import javax.faces.component.UIInput;
import javax.faces.event.ActionEvent;
import javax.faces.event.ValueChangeEvent;
import javax.faces.model.SelectItem;
import javax.faces.component.html.HtmlOutputText;
import javax.faces.component.html.HtmlSelectOneListbox;
import javax.faces.component.html.HtmlSelectOneRadio;
import javax.naming.InitialContext;
import ec.edu.epn.seguridad.servicio.ServicioSeguridad;
import ec.edu.epn.seguridad.vo.Aplicacion;
public class GestionAplicaciones implements Serializable {
private static final long serialVersionUID = 9099065821772808727L;
private ServicioSeguridad ss;
{
try {
InitialContext ctx = new InitialContext();
ss = (ServicioSeguridad) ctx.lookup("java:global/ServiciosSeguridadEPN/ServicioSeguridadBean!ec.edu.epn.seguridad.servicio.ServicioSeguridad");
} catch(Exception e) {
e.printStackTrace();
}
}
private String nombre;
private String descripcion;
private String activo;
private String url;
private List<Aplicacion> listaAplicaciones;
private List<SelectItem> listaItems;
//Estilos para los mensajes de Error
private String style;
private String styleSuccess="COLOR: #008000;";
private String styleError="COLOR: #fc5868;";
private String msgAdd;
private String msgUp;
//Componentes para cambiar dinmicamente h:inputText
private UIInput nombreIN;
private UIInput descripcionIN;
private UIInput urlIN;
private HtmlSelectOneRadio selectDefaultValue;
//Componentes para cambiar dinmicamente h:outputText
private HtmlOutputText nombreOut;
private HtmlOutputText descripcionOut;
private HtmlOutputText urlOut;
//Seleccin de la aplicacion a modificar
private Long aplicacionSeleccionadaID;
private HtmlSelectOneListbox aplicacionListBox;
public HtmlOutputText getNombreOut() {
return nombreOut;
}
public void setNombreOut(HtmlOutputText nombreOut) {
this.nombreOut = nombreOut;
}
public HtmlOutputText getDescripcionOut() {
return descripcionOut;
}
public void setDescripcionOut(HtmlOutputText descripcionOut) {
this.descripcionOut = descripcionOut;
}
public HtmlOutputText getUrlOut() {
return urlOut;
}
public void setUrlOut(HtmlOutputText urlOut) {
this.urlOut = urlOut;
}
public Long getAplicacionSeleccionadaID() {
return aplicacionSeleccionadaID;
}
public void setAplicacionSeleccionadaID(Long aplicacionSeleccionadaID) {
this.aplicacionSeleccionadaID = aplicacionSeleccionadaID;
}
public List<SelectItem> getListaItems(){
listaAplicaciones = new ArrayList<Aplicacion>();
getListaAplicaciones();
Collections.sort(listaAplicaciones, new ComparatorAdmin());
listaItems = new ArrayList<SelectItem>();
for(Aplicacion app : listaAplicaciones){
listaItems.add(new SelectItem(app.getId(), app.getNombre(), app.getDescripcion()));
}
return listaItems;
}
public List<Aplicacion> getListaAplicaciones() {
listaAplicaciones = ss.consultarAplicaciones();
Collections.sort(listaAplicaciones, new ComparatorAdmin());
return listaAplicaciones;
}
public void setListaAplicaciones(List<Aplicacion> listaAplicaciones) {
this.listaAplicaciones = listaAplicaciones;
}
public void setListaItems(List<SelectItem> listaItems) {
this.listaItems = listaItems;
}
public UIInput getNombreIN() {
return nombreIN;
}
public void setNombreIN(UIInput nombreIN) {
this.nombreIN = nombreIN;
}
public UIInput getDescripcionIN() {
return descripcionIN;
}
public void setDescripcionIN(UIInput descripcionIN) {
this.descripcionIN = descripcionIN;
}
public UIInput getUrlIN() {
return urlIN;
}
public void setUrlIN(UIInput urlIN) {
this.urlIN = urlIN;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public String getDescripcion() {
return descripcion;
}
public void setDescripcion(String descripcion) {
this.descripcion = descripcion;
}
public String getActivo() {
return activo;
}
public void setActivo(String activo) {
this.activo = activo;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public HtmlSelectOneRadio getSelectDefaultValue() {
return selectDefaultValue;
}
public void setSelectDefaultValue(HtmlSelectOneRadio selectDefaultValue) {
this.selectDefaultValue = selectDefaultValue;
}
public HtmlSelectOneListbox getAplicacionListBox() {
return aplicacionListBox;
}
public void setAplicacionListBox(HtmlSelectOneListbox aplicacionListBox) {
this.aplicacionListBox = aplicacionListBox;
}
public void addAplicacion(ActionEvent event){
Aplicacion app = new Aplicacion();
try{
if(nombre.trim().equals("") || descripcion.trim().equals("") || activo.trim().equals("") || url.trim().equals("")){
throw new Exception();
}else{
app.setNombre(nombre.trim());
app.setDescripcion(descripcion.trim());
app.setActivo(activo.trim());
app.setUrl(url.trim());
ss.guardarAplicacion(app);
setStyle(getStyleSuccess());
setMsgAdd("Aplicacin ingresada con xito");
setNombre("");
setDescripcion("");
setActivo("");
setUrl("");
}
}catch(Exception e){
setStyle(getStyleError());
setMsgAdd("La operacin no fue completada");
}
}
public void updateAplicacion(ActionEvent event){
String appSeleccionada = (String)aplicacionListBox.getValue();
setAplicacionSeleccionadaID(Long.parseLong(appSeleccionada!=null ? appSeleccionada : "-1"));
try{
Aplicacion app = searchAplicacion(aplicacionSeleccionadaID);
if(nombre.trim().equals("") || descripcion.trim().equals("") || activo.trim().equals("") || url.trim().equals("")){
throw new Exception();
}else{
app.setNombre(nombre.trim());
app.setDescripcion(descripcion.trim());
app.setActivo(activo.trim());
app.setUrl(url.trim());
ss.actualizarAplicacion(app);
setStyle(getStyleSuccess());
setMsgUp("Aplicacin modificada con xito");
setNombre("");
nombreOut.setValue("");
setDescripcion("");
descripcionOut.setValue("");
setActivo("");
setUrl("");
urlOut.setValue("");
}
}catch(Exception e){
setStyle(getStyleError());
setMsgUp("La operacin no fue completada");
}
}
public void cargarInfoAplicacion(ValueChangeEvent event){
setAplicacionSeleccionadaID(Long.parseLong((String)event.getNewValue()));
Aplicacion a = searchAplicacion(aplicacionSeleccionadaID);
nombreOut.setValue("Actual: "+a.getNombre());
descripcionOut.setValue("Actual: "+a.getDescripcion());
urlOut.setValue("Actual: "+a.getUrl());
nombreIN.setValue(a.getNombre());
descripcionIN.setValue(a.getDescripcion());
urlIN.setValue(a.getUrl());
selectDefaultValue.setValue(a.getActivo());
}
public Aplicacion searchAplicacion(Long id){
for(Aplicacion a : listaAplicaciones ){
if(a.getId()==id.longValue()){
return a;
}
}
return null;
}
public void cargarInicio(ActionEvent event){
nombreIN.setValue(" ");
descripcionIN.setValue(" ");
urlIN.setValue(" ");
selectDefaultValue.setValue(" ");
nombreOut.setValue(" ");
descripcionOut.setValue(" ");
urlOut.setValue(" ");
}
public void limpiarComponentes(ActionEvent event){
setNombre(" ");
setUrl(" ");
setDescripcion(" ");
setActivo(" ");
}
public void setStyleSuccess(String styleSuccess) {
this.styleSuccess = styleSuccess;
}
public String getStyleSuccess() {
return styleSuccess;
}
public void setStyleError(String styleError) {
this.styleError = styleError;
}
public String getStyleError() {
return styleError;
}
public void setStyle(String style) {
this.style = style;
}
public String getStyle() {
return style;
}
public void setMsgAdd(String msgAdd) {
this.msgAdd = msgAdd;
}
public String getMsgAdd() {
return msgAdd;
}
public void setMsgUp(String msgUp) {
this.msgUp = msgUp;
}
public String getMsgUp() {
return msgUp;
}
}
package ec.edu.epn.seguridad.servlet;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class CerrarSesion extends HttpServlet {
private static final long serialVersionUID = -8108914910223133525L;
public void service(ServletRequest req,ServletResponse resp) {
//Obteniendo las URLs de los parmetros de contexto de web.xml
String urlAplicacion = getServletContext().getInitParameter("urlAplicacion");
String urlLogout = getServletContext().getInitParameter("urlLogout");
HttpServletRequest request = (HttpServletRequest)req;
HttpSession session = request.getSession();
HttpServletResponse response = (HttpServletResponse)resp;
session.invalidate();
try {
//Redireccionando de vuelta a la aplicacin
//una vez cerrada la sesin
response.sendRedirect(urlLogout+"?service="+urlAplicacion);
}catch(Exception e) {
e.printStackTrace();
}
}
}
package ec.edu.epn.seguridad.VO;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.faces.context.FacesContext;
import javax.faces.model.SelectItem;
import javax.naming.InitialContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.jasig.cas.client.util.AbstractCasFilter;
import org.jasig.cas.client.validation.Assertion;
import org.primefaces.model.DefaultTreeNode;
import org.primefaces.model.TreeNode;
import org.primefaces.model.menu.DefaultMenuItem;
import org.primefaces.model.menu.DefaultMenuModel;
import org.primefaces.model.menu.DefaultSeparator;
import org.primefaces.model.menu.DefaultSubMenu;
import org.primefaces.model.menu.MenuModel;
import ec.edu.epn.seguridad.servicio.ServicioSeguridad;
import ec.edu.epn.seguridad.vo.Menu;
import ec.edu.epn.seguridad.vo.Perfil;
import ec.edu.epn.seguridad.vo.Usuario;
/**
* Maneja la pantalla de seleccin de rol, la informacin del menu dinmico e
* incluye funciones para validar accesos a nivel de componentes web, ejemplo:
* si un botn no se debe presentar si el usuario no tiene permiso de creacin
* se colocara el atributo rendered="${sesionUsuario.puedeCrear}"
*
*
*/
public class SesionUsuario implements Serializable {
/**
*
*/
private static final long serialVersionUID = 2171946028044573953L;
public static String NOMBRE_VARIABLE_ACCESOS = "EPN_ACCESOS";
public int UNIDAD_USUARIO_LOGEADO = 0;
public String nombre_usuario_logeado = " ";
public long id_usuario_log = 0;
public String id_sessionU = "";
private ServicioSeguridad ss;
{
try {
InitialContext ctx = new InitialContext();
ss = (ServicioSeguridad) ctx.lookup(
"java:global/ServiciosSeguridadEPN/ServicioSeguridadBean!ec.edu.epn.seguridad.servicio.ServicioSeguridad");
} catch (Exception e) {
e.printStackTrace();
}
}
private String perfilSeleccionado;
private Map<String, String> opciones;
private TreeNode root;
private TreeNode selectedNode;
private MenuModel model;
// Contiene los datos del usuario logeado
private Usuario usuario;
/**
* Retorna todos los perfiles que tiene el usuario logeado
*
* @return
*/
public List<SelectItem> getPerfiles() {
List<SelectItem> perfiles = new ArrayList<SelectItem>();
String nombreUsuario = getUsuario().getNombreUsuario();
List<Perfil> resultadoBusqueda = ss.obtenerPerfilesUsuario(nombreUsuario);
if (resultadoBusqueda != null) {
for (Perfil p : resultadoBusqueda) {
SelectItem i = new SelectItem();
i.setDescription(p.getNombre());
i.setValue(p.getNombre());
i.setLabel(p.getNombre());
perfiles.add(i);
}
}
return perfiles;
}
/**
* Se ejecuta al momento de hacer click en el boton Aceptar de la pantalla
* Seleccionar Rol
*/
public String seleccionRol() {
String nombreUsuario = getUsuario().getNombreUsuario();
if (perfilSeleccionado != null && ss.usuarioTienePerfil(nombreUsuario, perfilSeleccionado)) {
llenarMenus(perfilSeleccionado);
cargarRol(perfilSeleccionado);
return "principal";
} else {
return null;
}
}
public TreeNode getRoot() {
return root;
}
public TreeNode getSelectedNode() {
return selectedNode;
}
public void setSelectedNode(TreeNode selectedNode) {
this.selectedNode = selectedNode;
}
public void llenarMenus(String peril) {
model = new DefaultMenuModel();
FacesContext fc = FacesContext.getCurrentInstance();
String urlAplicacion = fc.getExternalContext().getInitParameter("urlAplicacion");
List<Menu> menusPadre = ss.obtenerMenusPadre(peril.trim());
DefaultSeparator separator = new DefaultSeparator();
separator.setStyleClass("fa fa-ellipsis-v menu-separator");
for (Menu m : menusPadre) {
DefaultSubMenu firstSubmenu = new DefaultSubMenu(m.getNombre().trim().concat(" "));
firstSubmenu.setStyle("font-family: 'calibri Light'; font-size: 12px;");
List<Menu> menusHijo = ss.obtenerMenusHijo(peril.trim(), m.getId(), "menu", "opcion");
for (Menu mi : menusHijo) {
if (mi.getTipo().trim().equals("menu")) {
DefaultSubMenu secondSubmenu = new DefaultSubMenu(mi.getNombre().trim());
secondSubmenu.setStyle("font-family: 'calibri Light'; font-size: 12px;");
List<Menu> opcionesMenu = ss.obtenerMenusHijo(peril.trim(), mi.getId(), "opcion", "");
for (Menu mo : opcionesMenu) {
DefaultMenuItem item = new DefaultMenuItem(mo.getNombre().trim());
item.setStyle("font-family: 'calibri Light'; font-size: 12px;");
item.setUrl(urlAplicacion + mo.getUrl());
item.setIcon("ui-icon-home");
secondSubmenu.addElement(item);
}
firstSubmenu.addElement(secondSubmenu);
} else {
DefaultMenuItem item = new DefaultMenuItem(mi.getNombre().trim());
item.setStyle("font-family: 'calibri Light'; font-size: 12px;");
item.setUrl(urlAplicacion + mi.getUrl());
item.setIcon("ui-icon-home");
firstSubmenu.addElement(item);
}
}
model.addElement(firstSubmenu);
model.addElement(separator);
}
}
private void cargarRol(String rol) {
Map<String, String> opciones = new HashMap<String, String>();
FacesContext fc = FacesContext.getCurrentInstance();
String urlAplicacion = fc.getExternalContext().getInitParameter("urlAplicacion");
root = new DefaultTreeNode(new MenuAccion(null), null);
List<Menu> menus = ss.obtenerMenusPorRol(rol);
List<Menu> menusPadre = ss.obtenerMenusPadre(rol);
TreeNode[] listPadre = new TreeNode[menusPadre.size()];
for (int i = 0; i < menusPadre.size(); i++) {
listPadre[i] = new DefaultTreeNode(new MenuAccion(menusPadre.get(i)), root);
List<Menu> menusHijo = ss.obtenerMenusHijo(rol, menusPadre.get(i).getId(), "menu", "opcion");
TreeNode[] listHijo = new TreeNode[menusHijo.size()];
for (int j = 0; j < menusHijo.size(); j++) {
listHijo[j] = new DefaultTreeNode(new MenuAccion(menusHijo.get(j)), listPadre[i]);
List<Menu> opcionesMenu = ss.obtenerMenusHijo(rol, menusHijo.get(j).getId(), "opcion", "");
TreeNode[] listOpciones = new TreeNode[opcionesMenu.size()];
for (int k = 0; k < opcionesMenu.size(); k++) {
listOpciones[k] = new DefaultTreeNode(new MenuAccion(opcionesMenu.get(k)), listHijo[j]);
}
}
}
for (Menu m : menus) {
if (m.getUrlCompleto() != null && m.getTipo() != "menu" && m.getUrlCompleto().startsWith(urlAplicacion)) {
opciones.put(m.getUrl(), m.getPermisos());
}
}
setOpciones(opciones);
}
/**
* Permite que aparezcan como expandidas las carpetas de segundo nivel
*/
/**
* Obtiene el usuario de la variable de session en donde publica el Filtro
* de Autorizacion de CAS y lo guarda en un atributo para que a partir de la
* segunda vez se consulte directamente de este atributo
*/
public Usuario getUsuario() {
if (usuario == null) {
FacesContext fc = FacesContext.getCurrentInstance();
HttpServletRequest request = (HttpServletRequest) fc.getExternalContext().getRequest();
HttpSession session = request.getSession();
Assertion a = (Assertion) session.getAttribute(AbstractCasFilter.CONST_CAS_ASSERTION);
String nombreUsuario = a.getPrincipal().getName();
usuario = ss.obtenerUsuario(nombreUsuario);
id_sessionU = (String) session.getId();
session.setAttribute("unidadUsuarioLogueado", usuario.getId_unidad());
UNIDAD_USUARIO_LOGEADO = (Integer) session.getAttribute("unidadUsuarioLogueado");
session.setAttribute("NombreUsuarioLog", usuario.getNombreUsuario());
nombre_usuario_logeado = (String) session.getAttribute("NombreUsuarioLog");
session.setAttribute("IdUsuarioLog", usuario.getId());
id_usuario_log = (Long) session.getAttribute("IdUsuarioLog");
}
return usuario;
}
/**
* Retorna el campo permisos de la tabla autorizaciones para la url actual
*/
public String getAccesos() {
FacesContext fc = FacesContext.getCurrentInstance();
HttpServletRequest request = (HttpServletRequest) fc.getExternalContext().getRequest();
return (String) request.getAttribute(NOMBRE_VARIABLE_ACCESOS);
}
/**
* Valida que el usuario tenga permisos en la tabla autorizaciones para la
* url actual
*/
public String getPermisosAcceso(String permisoAcceso) {
FacesContext fc = FacesContext.getCurrentInstance();
HttpServletRequest request = (HttpServletRequest) fc.getExternalContext().getRequest();
String acceso = (String) request.getAttribute(NOMBRE_VARIABLE_ACCESOS);
char delimiter = ' ';
String accesoToken = " ";
accesoToken = acceso;
String puedeLeer = "";
String puedeCrear = "";
String puedeModificar = "";
String puedeEliminar = "";
if (acceso != null) {
int N = 0;
for (int i = 0; i < accesoToken.length(); i++)
if (accesoToken.charAt(i) == delimiter)
N++;
String[] tokens = new String[N + 1];
int right = 0, left = 0;
for (int i = 0; i < N; i++) {
while (accesoToken.charAt(right) != delimiter)
right++;
tokens[i] = accesoToken.substring(left, right);
right++;
left = right;
}
tokens[N] = accesoToken.substring(right, accesoToken.length());
for (int i = 0; i < tokens.length; i++) {
if (i == 0 && permisoAcceso == "l") {
puedeLeer = tokens[i];
if (puedeLeer.equals("l")) {
return "false";
} else if (puedeLeer.equals("-") || puedeLeer.equals(" ")) {
return "true";
}
} else if (i == 1 && permisoAcceso == "c") {
puedeCrear = tokens[i];
if (puedeCrear.equals("c")) {
return "false";
} else if (puedeCrear.equals("-") || puedeCrear.equals(" ")) {
return "true";
}
} else if (i == 2 && permisoAcceso == "m") {
puedeModificar = tokens[i];
if (puedeModificar.equals("m")) {
return "false";
} else if (puedeModificar.equals("-") || puedeModificar.equals(" ")) {
return "true";
}
} else if (i == 3 && permisoAcceso == "e") {
puedeEliminar = tokens[i];
if (puedeEliminar.equals("e")) {
return "false";
} else if (puedeEliminar.equals("-")) {
return "true";
}
}
}
}
return "true";
}
/**
* Permiso de acceso puede crear
*/
public String getAccesoCrear() {
return getPermisosAcceso("c");
}
/**
* Permiso de acceso puede modificar
*/
public String getAccesoModificar() {
return getPermisosAcceso("m");
}
/**
* Permiso de acceso puede eliminar
*/
public String getAccesoEliminar() {
return getPermisosAcceso("e");
}
public String getPerfilSeleccionado() {
return perfilSeleccionado;
}
public void setPerfilSeleccionado(String perfilSeleccionado) {
this.perfilSeleccionado = perfilSeleccionado;
}
public Map<String, String> getOpciones() {
return opciones;
}
public void setOpciones(Map<String, String> opciones) {
this.opciones = opciones;
}
public MenuModel getModel() {
return model;
}
public void setModel(MenuModel model) {
this.model = model;
}
}
<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
<runtime name="JBoss EAP 6.1+ Runtime"/>
<fixed facet="java"/>
<fixed facet="jst.utility"/>
<installed facet="jst.utility" version="1.0"/>
<installed facet="java" version="1.7"/>
</faceted-project>
package ec.edu.epn.seguridad.VO;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;
//import javax.ejb.EJB;
//import javax.faces.application.Application;
import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.component.UIInput;
import javax.faces.component.html.HtmlOutputText;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import javax.faces.event.ValueChangeEvent;
import javax.faces.model.SelectItem;
import javax.faces.validator.ValidatorException;
import javax.naming.InitialContext;
import javax.servlet.http.HttpServletRequest;
import ec.edu.epn.seguridad.servicio.ServicioSeguridad;
import ec.edu.epn.seguridad.vo.Personal;
import ec.edu.epn.seguridad.vo.Unidad;
import ec.edu.epn.seguridad.vo.Usuario;
public class GestionUsuario implements Serializable{
private static final long serialVersionUID = -4706493107016051445L;
private ServicioSeguridad ss;
{
try {
InitialContext ctx = new InitialContext();
ss = (ServicioSeguridad) ctx.lookup("java:global/ServiciosSeguridadEPN/ServicioSeguridadBean!ec.edu.epn.seguridad.servicio.ServicioSeguridad");
} catch(Exception e) {
e.printStackTrace();
}
}
///Ingreso de nuevos Usuarios
private String nombre;
private String clave;
private String cedula;
private String personalIn;
private String unidadIn;
private List<SelectItem> listaPersonal;
private List<SelectItem> listaUnidad;
///Actualizacin de Usuarios
private List<SelectItem> listaUsuarios;
private UIInput nombreIn;
private HtmlOutputText nombreOut;
private UIInput claveIn;
private HtmlOutputText claveOut;
private UIInput cedulaIn;
private HtmlOutputText cedulaOut;
private UIInput personalIN;
private HtmlOutputText personalOut;
private UIInput unidadIN;
private HtmlOutputText unidadOut;
///Listado de Usuarios
private List<UsuarioTemp> listaUsuariosObjetos;
//Estilos para los mensajes de Error
private String style;
private String styleSuccess="COLOR: #008000;";
private String styleError="COLOR: #fc5868;";
private String msgAdd;
private String msgUp;
public List<SelectItem> getListaPersonal() {
listaPersonal = new ArrayList<SelectItem>();
List<Personal> buscarPersonal = ss.getListaPersonal();
Collections.sort(buscarPersonal, new ComparatorAdmin());
for(Personal per : buscarPersonal){
SelectItem item = new SelectItem(per.getNombresPe(),per.getNombresPe());
listaPersonal.add(item);
}
return listaPersonal;
}
public List<SelectItem> getListaUnidad() {
listaUnidad = new ArrayList<SelectItem>();
List<Unidad> buscarUnidades = ss.getListaUnidades();
Collections.sort(buscarUnidades, new ComparatorAdmin());
for(Unidad u : buscarUnidades){
SelectItem item = new SelectItem(u.getNombreU(),u.getNombreU());
listaUnidad.add(item);
}
return listaUnidad;
}
public List<SelectItem> getListaUsuarios() {
listaUsuarios = new ArrayList<SelectItem>();
List<Usuario> buscarUsuarios = ss.getListaUsuarios();
Collections.sort(buscarUsuarios, new ComparatorAdmin());
for(Usuario u : buscarUsuarios){
SelectItem item = new SelectItem(u.getNombreUsuario(),u.getNombreUsuario());
listaUsuarios.add(item);
}
return listaUsuarios;
}
public void guardarUsuario(ActionEvent event){
Usuario user = new Usuario();
try{
if(nombre.trim().equals("") || clave.trim().equals("") || cedula.trim().equals("")
|| personalIn.trim().equals("") || unidadIn.trim().equals("")){
throw new Exception();
}else{
Validadores val = new Validadores();
if(val.isCedula(cedula.trim())){
user.setCedula(cedula.trim());
}else{
throw new NumberFormatException();
}
user.setNombreUsuario(nombre.trim());
user.setClave(!clave.trim().equals("") ? clave.trim() : "epn.edu.ec");
user.setFechaCreacion(new Date());
user.setIdPersonal(getIdPersonal());
user.setId_unidad(getIdUnidad());
ss.guardarUsuario(user);
setStyle(getStyleSuccess());
setMsgAdd("Usuario ingresado con xito");
setNombre("");
setClave("");
setCedula("");
setPersonalIn("");
setUnidadIn("");
}
}catch(Exception e){
setStyle(getStyleError());
if(e.getClass().getName().equals(NumberFormatException.class.getName())){
setMsgAdd("Valor de cdula errneo");
}else{
setMsgAdd("La operacin no fue completada");
}
}
}
public void validarCedula(FacesContext context, UIComponent component,
Object value) throws ValidatorException{
String numCedula = (String)value;
Validadores val = new Validadores();
if(!val.isCedula(numCedula)){
throw new ValidatorException(new FacesMessage(
FacesMessage.SEVERITY_ERROR, "La cdula debe contener solo nmeros",
"El nmero de cdula "+numCedula+" es invlido"
));
}
}
public void cargarDatosUsuario(ValueChangeEvent event){
String nombreUsuario = (String)event.getNewValue();
if(nombreUsuario!=null){
try{
Usuario user = ss.buscarUsuarioPorNombre(nombreUsuario);
nombreIn.setValue(user.getNombreUsuario());
nombreOut.setValue("Actual: "+user.getNombreUsuario());
claveIn.setValue(user.getClave());
claveOut.setValue("Actual: "+user.getClave());
cedulaIn.setValue(user.getCedula());
cedulaOut.setValue("Actual: "+user.getCedula());
personalIN.setValue(getNombrePersonal(user.getIdPersonal()));
personalOut.setValue("Actual: "+getNombrePersonal(user.getIdPersonal()));
unidadIN.setValue(getNombreUnidad(user.getId_unidad()));
unidadOut.setValue("Actual: "+getNombreUnidad(user.getId_unidad()));
}catch(Exception e){
System.out.println("Usuario no encontrado");
}
}
}
public void actualizarUsuario(ActionEvent event){
FacesContext fc = FacesContext.getCurrentInstance();
HttpServletRequest request = (HttpServletRequest) fc
.getExternalContext().getRequest();
String usuarioSeleccionado = request.getParameter("formActualizarUsuario:seleccionUsuario");
try{
if(nombre.trim().equals("") || clave.trim().equals("") || cedula.trim().equals("")
|| personalIn.trim().equals("") || unidadIn.trim().equals("")){
throw new Exception();
}else{
Usuario user = ss.buscarUsuarioPorNombre(usuarioSeleccionado);
Validadores val = new Validadores();
if(val.isCedula(cedula.trim())){
user.setCedula(cedula.trim());
}else{
throw new NumberFormatException();
}
user.setNombreUsuario(!nombre.trim().equals("") ? nombre.trim() : user.getNombreUsuario());
user.setClave(!clave.trim().equals("") ? clave.trim() : "epn.edu.ec");
user.setId_unidad(getIdUnidad());
user.setIdPersonal(getIdPersonal());
ss.actualizarUsuario(user);
setStyle(getStyleSuccess());
setMsgUp("Usuario actualizado con xito");
setNombre(" ");
setClave(" ");
setCedula(" ");
setPersonalIn(" ");
setUnidadIn(" ");
}
}catch(Exception e){
setStyle(getStyleError());
if(e.getClass().getName().equals(NumberFormatException.class.getName())){
setMsgUp("Valor de cdula errneo");
}else{
setMsgUp("La operacin no fue completada");
}
}
}
public List<UsuarioTemp> getListaUsuariosObjetos() {
listaUsuariosObjetos = new ArrayList<UsuarioTemp>();
List<Usuario> users = new ArrayList<Usuario>();
users = ss.getListaUsuarios();
Collections.sort(users, new ComparatorAdmin());
for(Usuario user : users){
UsuarioTemp userTemp = new UsuarioTemp();
userTemp.setId(user.getId());
userTemp.setNombreUsuario(user.getNombreUsuario());
userTemp.setClave(user.getClave());
userTemp.setCedula(user.getCedula());
userTemp.setFechaCreacion(user.getFechaCreacion());
Personal per = new Personal();
per = ss.buscarPersonalPorID(user.getIdPersonal());
Unidad uni = new Unidad();
uni = ss.buscarUnidadPorID(user.getId_unidad());
userTemp.setPersonal(per);
userTemp.setUnidad(uni);
listaUsuariosObjetos.add(userTemp);
}
return listaUsuariosObjetos;
}
private int getIdUnidad() {
return ss.buscarUnidadPorNombre(unidadIn).getIdUnidad();
}
private String getIdPersonal() {
return ss.buscarPersonalPorNombre(personalIn).getIdPersonal();
}
public String getNombrePersonal(String personalId){
List<Personal> buscarPersonal = ss.getListaPersonal();
for(Personal p: buscarPersonal){
if(p.getIdPersonal().equals(personalId)){
return p.getNombresPe();
}
}
return " ";
}
public String getNombreUnidad(int unidadId){
List<Unidad> buscarUnidades = ss.getListaUnidades();
for(Unidad u : buscarUnidades){
if(u.getIdUnidad()==unidadId){
return u.getNombreU();
}
}
return " ";
}
public void cargarInicio(ActionEvent event){
nombreIn.setValue(" ");
claveIn.setValue(" ");
cedulaIn.setValue(" ");
personalIN.setValue(" ");
unidadIN.setValue(" ");
nombreOut.setValue("");
claveOut.setValue("");
cedulaOut.setValue("");
personalOut.setValue("");
unidadOut.setValue("");
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public String getClave() {
return clave;
}
public void setClave(String clave) {
this.clave = clave;
}
public String getCedula() {
return cedula;
}
public void setCedula(String cedula) {
this.cedula = cedula;
}
public String getPersonalIn() {
return personalIn;
}
public void setPersonalIn(String personalIn) {
this.personalIn = personalIn;
}
public String getUnidadIn() {
return unidadIn;
}
public void setUnidadIn(String unidadIn) {
this.unidadIn = unidadIn;
}
public void setListaPersonal(List<SelectItem> listaPersonal) {
this.listaPersonal = listaPersonal;
}
public void setListaUnidad(List<SelectItem> listaUnidad) {
this.listaUnidad = listaUnidad;
}
public void setListaUsuarios(List<SelectItem> listaUsuarios) {
this.listaUsuarios = listaUsuarios;
}
public UIInput getNombreIn() {
return nombreIn;
}
public void setNombreIn(UIInput nombreIn) {
this.nombreIn = nombreIn;
}
public HtmlOutputText getNombreOut() {
return nombreOut;
}
public void setNombreOut(HtmlOutputText nombreOut) {
this.nombreOut = nombreOut;
}
public UIInput getClaveIn() {
return claveIn;
}
public void setClaveIn(UIInput claveIn) {
this.claveIn = claveIn;
}
public HtmlOutputText getClaveOut() {
return claveOut;
}
public void setClaveOut(HtmlOutputText claveOut) {
this.claveOut = claveOut;
}
public UIInput getCedulaIn() {
return cedulaIn;
}
public void setCedulaIn(UIInput cedulaIn) {
this.cedulaIn = cedulaIn;
}
public HtmlOutputText getCedulaOut() {
return cedulaOut;
}
public void setCedulaOut(HtmlOutputText cedulaOut) {
this.cedulaOut = cedulaOut;
}
public UIInput getPersonalIN() {
return personalIN;
}
public void setPersonalIN(UIInput personalIN) {
this.personalIN = personalIN;
}
public HtmlOutputText getPersonalOut() {
return personalOut;
}
public void setPersonalOut(HtmlOutputText personalOut) {
this.personalOut = personalOut;
}
public UIInput getUnidadIN() {
return unidadIN;
}
public void setUnidadIN(UIInput unidadIN) {
this.unidadIN = unidadIN;
}
public HtmlOutputText getUnidadOut() {
return unidadOut;
}
public void setUnidadOut(HtmlOutputText unidadOut) {
this.unidadOut = unidadOut;
}
public void setListaUsuariosObjetos(List<UsuarioTemp> listaUsuariosObjetos) {
this.listaUsuariosObjetos = listaUsuariosObjetos;
}
public void setStyle(String style) {
this.style = style;
}
public String getStyle() {
return style;
}
public void setStyleSuccess(String styleSuccess) {
this.styleSuccess = styleSuccess;
}
public String getStyleSuccess() {
return styleSuccess;
}
public void setStyleError(String styleError) {
this.styleError = styleError;
}
public String getStyleError() {
return styleError;
}
public void setMsgAdd(String msgAdd) {
this.msgAdd = msgAdd;
}
public String getMsgAdd() {
return msgAdd;
}
public void setMsgUp(String msgUp) {
this.msgUp = msgUp;
}
public String getMsgUp() {
return msgUp;
}
}
package ec.edu.epn.seguridad.VO;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.faces.context.FacesContext;
import javax.faces.model.SelectItem;
import javax.naming.InitialContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.jasig.cas.client.util.AbstractCasFilter;
import org.jasig.cas.client.validation.Assertion;
import org.primefaces.model.DefaultTreeNode;
import org.primefaces.model.TreeNode;
import org.primefaces.model.menu.DefaultMenuItem;
import org.primefaces.model.menu.DefaultMenuModel;
import org.primefaces.model.menu.DefaultSeparator;
import org.primefaces.model.menu.DefaultSubMenu;
import org.primefaces.model.menu.MenuModel;
import ec.edu.epn.seguridad.servicio.ServicioSeguridad;
import ec.edu.epn.seguridad.vo.Menu;
import ec.edu.epn.seguridad.vo.Perfil;
import ec.edu.epn.seguridad.vo.Usuario;
/**
* Maneja la pantalla de seleccin de rol, la informacin del menu dinmico e
* incluye funciones para validar accesos a nivel de componentes web, ejemplo:
* si un botn no se debe presentar si el usuario no tiene permiso de creacin
* se colocara el atributo rendered="${sesionUsuario.puedeCrear}"
*
*
*/
public class SesionUsuario implements Serializable {
/**
*
*/
private static final long serialVersionUID = 2171946028044573953L;
public static String NOMBRE_VARIABLE_ACCESOS = "EPN_ACCESOS";
public int UNIDAD_USUARIO_LOGEADO = 0;
public String nombre_usuario_logeado = " ";
public long id_usuario_log = 0;
public String id_sessionU = "";
private ServicioSeguridad ss;
{
try {
InitialContext ctx = new InitialContext();
ss = (ServicioSeguridad) ctx.lookup(
"java:global/ServiciosSeguridadEPN/ServicioSeguridadBean!ec.edu.epn.seguridad.servicio.ServicioSeguridad");
} catch (Exception e) {
e.printStackTrace();
}
}
private String perfilSeleccionado;
private Map<String, String> opciones;
private TreeNode root;
private TreeNode selectedNode;
private MenuModel model;
// Contiene los datos del usuario logeado
private Usuario usuario;
/**
* Retorna todos los perfiles que tiene el usuario logeado
*
* @return
*/
public List<SelectItem> getPerfiles() {
List<SelectItem> perfiles = new ArrayList<SelectItem>();
String nombreUsuario = getUsuario().getNombreUsuario();
List<Perfil> resultadoBusqueda = ss.obtenerPerfilesUsuario(nombreUsuario);
if (resultadoBusqueda != null) {
for (Perfil p : resultadoBusqueda) {
SelectItem i = new SelectItem();
i.setDescription(p.getNombre());
i.setValue(p.getNombre());
i.setLabel(p.getNombre());
perfiles.add(i);
}
}
return perfiles;
}
/**
* Se ejecuta al momento de hacer click en el boton Aceptar de la pantalla
* Seleccionar Rol
*/
public String seleccionRol() {
String nombreUsuario = getUsuario().getNombreUsuario();
if (perfilSeleccionado != null && ss.usuarioTienePerfil(nombreUsuario, perfilSeleccionado)) {
llenarMenus(perfilSeleccionado);
cargarRol(perfilSeleccionado);
return "principal";
} else {
return null;
}
}
public TreeNode getRoot() {
return root;
}
public TreeNode getSelectedNode() {
return selectedNode;
}
public void setSelectedNode(TreeNode selectedNode) {
this.selectedNode = selectedNode;
}
public void llenarMenus(String peril) {
model = new DefaultMenuModel();
FacesContext fc = FacesContext.getCurrentInstance();
String urlAplicacion = fc.getExternalContext().getInitParameter("urlAplicacion");
List<Menu> menusPadre = ss.obtenerMenusPadre(peril.trim());
DefaultSeparator separator = new DefaultSeparator();
separator.setStyleClass("fa fa-ellipsis-v menu-separator");
for (Menu m : menusPadre) {
DefaultSubMenu firstSubmenu = new DefaultSubMenu(m.getNombre().trim().concat(" "));
firstSubmenu.setStyle("font-family: 'calibri Light'; font-size: 11px;");
//firstSubmenu.setIcon("fa fa-file-text-o");
firstSubmenu.setIcon("fa fa-caret-right");
firstSubmenu.setExpanded(true);
List<Menu> menusHijo = ss.obtenerMenusHijo(peril.trim(), m.getId(), "menu", "opcion");
for (Menu mi : menusHijo) {
if (mi.getTipo().trim().equals("menu")) {
DefaultSubMenu secondSubmenu = new DefaultSubMenu(mi.getNombre().trim());
secondSubmenu.setStyle("font-family: 'calibri Light'; font-size: 11px;");
secondSubmenu.setIcon("fa fa-folder");
//secondSubmenu.setExpanded(true);
List<Menu> opcionesMenu = ss.obtenerMenusHijo(peril.trim(), mi.getId(), "opcion", "");
for (Menu mo : opcionesMenu) {
DefaultMenuItem item = new DefaultMenuItem(mo.getNombre().trim());
item.setStyle("font-family: 'calibri Light'; font-size: 11px;");
item.setUrl(urlAplicacion + mo.getUrl());
secondSubmenu.addElement(item);
}
firstSubmenu.addElement(secondSubmenu);
} else {
DefaultMenuItem item = new DefaultMenuItem(mi.getNombre().trim());
item.setStyle("font-family: 'calibri Light'; font-size: 11px;");
item.setUrl(urlAplicacion + mi.getUrl());
firstSubmenu.addElement(item);
}
}
model.addElement(firstSubmenu);
model.addElement(separator);
}
}
private void cargarRol(String rol) {
Map<String, String> opciones = new HashMap<String, String>();
FacesContext fc = FacesContext.getCurrentInstance();
String urlAplicacion = fc.getExternalContext().getInitParameter("urlAplicacion");
root = new DefaultTreeNode(new MenuAccion(null), null);
List<Menu> menus = ss.obtenerMenusPorRol(rol);
List<Menu> menusPadre = ss.obtenerMenusPadre(rol);
TreeNode[] listPadre = new TreeNode[menusPadre.size()];
for (int i = 0; i < menusPadre.size(); i++) {
listPadre[i] = new DefaultTreeNode(new MenuAccion(menusPadre.get(i)), root);
List<Menu> menusHijo = ss.obtenerMenusHijo(rol, menusPadre.get(i).getId(), "menu", "opcion");
TreeNode[] listHijo = new TreeNode[menusHijo.size()];
for (int j = 0; j < menusHijo.size(); j++) {
listHijo[j] = new DefaultTreeNode(new MenuAccion(menusHijo.get(j)), listPadre[i]);
List<Menu> opcionesMenu = ss.obtenerMenusHijo(rol, menusHijo.get(j).getId(), "opcion", "");
TreeNode[] listOpciones = new TreeNode[opcionesMenu.size()];
for (int k = 0; k < opcionesMenu.size(); k++) {
listOpciones[k] = new DefaultTreeNode(new MenuAccion(opcionesMenu.get(k)), listHijo[j]);
}
}
}
for (Menu m : menus) {
if (m.getUrlCompleto() != null && m.getTipo() != "menu" && m.getUrlCompleto().startsWith(urlAplicacion)) {
opciones.put(m.getUrl(), m.getPermisos());
}
}
setOpciones(opciones);
}
/**
* Permite que aparezcan como expandidas las carpetas de segundo nivel
*/
/**
* Obtiene el usuario de la variable de session en donde publica el Filtro
* de Autorizacion de CAS y lo guarda en un atributo para que a partir de la
* segunda vez se consulte directamente de este atributo
*/
public Usuario getUsuario() {
if (usuario == null) {
FacesContext fc = FacesContext.getCurrentInstance();
HttpServletRequest request = (HttpServletRequest) fc.getExternalContext().getRequest();
HttpSession session = request.getSession();
Assertion a = (Assertion) session.getAttribute(AbstractCasFilter.CONST_CAS_ASSERTION);
String nombreUsuario = a.getPrincipal().getName();
usuario = ss.obtenerUsuario(nombreUsuario);
id_sessionU = (String) session.getId();
session.setAttribute("unidadUsuarioLogueado", usuario.getId_unidad());
UNIDAD_USUARIO_LOGEADO = (Integer) session.getAttribute("unidadUsuarioLogueado");
session.setAttribute("NombreUsuarioLog", usuario.getNombreUsuario());
nombre_usuario_logeado = (String) session.getAttribute("NombreUsuarioLog");
session.setAttribute("IdUsuarioLog", usuario.getId());
id_usuario_log = (Long) session.getAttribute("IdUsuarioLog");
}
return usuario;
}
/**
* Retorna el campo permisos de la tabla autorizaciones para la url actual
*/
public String getAccesos() {
FacesContext fc = FacesContext.getCurrentInstance();
HttpServletRequest request = (HttpServletRequest) fc.getExternalContext().getRequest();
return (String) request.getAttribute(NOMBRE_VARIABLE_ACCESOS);
}
/**
* Valida que el usuario tenga permisos en la tabla autorizaciones para la
* url actual
*/
public String getPermisosAcceso(String permisoAcceso) {
FacesContext fc = FacesContext.getCurrentInstance();
HttpServletRequest request = (HttpServletRequest) fc.getExternalContext().getRequest();
String acceso = (String) request.getAttribute(NOMBRE_VARIABLE_ACCESOS);
char delimiter = ' ';
String accesoToken = " ";
accesoToken = acceso;
String puedeLeer = "";
String puedeCrear = "";
String puedeModificar = "";
String puedeEliminar = "";
if (acceso != null) {
int N = 0;
for (int i = 0; i < accesoToken.length(); i++)
if (accesoToken.charAt(i) == delimiter)
N++;
String[] tokens = new String[N + 1];
int right = 0, left = 0;
for (int i = 0; i < N; i++) {
while (accesoToken.charAt(right) != delimiter)
right++;
tokens[i] = accesoToken.substring(left, right);
right++;
left = right;
}
tokens[N] = accesoToken.substring(right, accesoToken.length());
for (int i = 0; i < tokens.length; i++) {
if (i == 0 && permisoAcceso == "l") {
puedeLeer = tokens[i];
if (puedeLeer.equals("l")) {
return "false";
} else if (puedeLeer.equals("-") || puedeLeer.equals(" ")) {
return "true";
}
} else if (i == 1 && permisoAcceso == "c") {
puedeCrear = tokens[i];
if (puedeCrear.equals("c")) {
return "false";
} else if (puedeCrear.equals("-") || puedeCrear.equals(" ")) {
return "true";
}
} else if (i == 2 && permisoAcceso == "m") {
puedeModificar = tokens[i];
if (puedeModificar.equals("m")) {
return "false";
} else if (puedeModificar.equals("-") || puedeModificar.equals(" ")) {
return "true";
}
} else if (i == 3 && permisoAcceso == "e") {
puedeEliminar = tokens[i];
if (puedeEliminar.equals("e")) {
return "false";
} else if (puedeEliminar.equals("-")) {
return "true";
}
}
}
}
return "true";
}
/**
* Permiso de acceso puede crear
*/
public String getAccesoCrear() {
return getPermisosAcceso("c");
}
/**
* Permiso de acceso puede modificar
*/
public String getAccesoModificar() {
return getPermisosAcceso("m");
}
/**
* Permiso de acceso puede eliminar
*/
public String getAccesoEliminar() {
return getPermisosAcceso("e");
}
public String getPerfilSeleccionado() {
return perfilSeleccionado;
}
public void setPerfilSeleccionado(String perfilSeleccionado) {
this.perfilSeleccionado = perfilSeleccionado;
}
public Map<String, String> getOpciones() {
return opciones;
}
public void setOpciones(Map<String, String> opciones) {
this.opciones = opciones;
}
public MenuModel getModel() {
return model;
}
public void setModel(MenuModel model) {
this.model = model;
}
}
XDOCLETBUILDERACTIVE=true
XDOCLETHOME=
XDOCLETUSEGLOBAL=true
XDOCLETVERSION=1.2.1
eclipse.preferences.version=1
package ec.edu.epn.seguridad.VO;
import java.io.Serializable;
import ec.edu.epn.seguridad.vo.Usuario;
/**
* Emula SesionUsuario con datos quemados
*
*/
public class SesionUsuarioMock implements Serializable{
/**
*
*/
private static final long serialVersionUID = -6051644872747793329L;
private String perfilSeleccionado;
public String getPerfilSeleccionado() {
return perfilSeleccionado;
}
public void setPerfilSeleccionado(String perfilSeleccionado) {
this.perfilSeleccionado = perfilSeleccionado;
}
public Usuario getUsuario() {
Usuario u = new Usuario();
u.setNombreUsuario("username");
u.setCedula("1234567890");
return u;
}
public boolean validarAcceso(String acceso){
return true;
}
public boolean getPuedeCrear(){
return validarAcceso("c");
}
public boolean getPuedeModificar(){
return validarAcceso("m");
}
public boolean getPuedeEliminar(){
return validarAcceso("e");
}
}
eclipse.preferences.version=1
org.eclipse.jdt.core.builder.cleanOutputFolder=clean
org.eclipse.jdt.core.builder.duplicateResourceTask=warning
org.eclipse.jdt.core.builder.invalidClasspath=abort
org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
org.eclipse.jdt.core.circularClasspath=error
org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
org.eclipse.jdt.core.compiler.compliance=1.7
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.source=1.7
org.eclipse.jdt.core.incompatibleJDKLevel=ignore
org.eclipse.jdt.core.incompleteClasspath=error
package ec.edu.epn.seguridad.VO;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.component.UIInput;
import javax.faces.component.html.HtmlInputText;
import javax.faces.component.html.HtmlOutputText;
import javax.faces.component.html.HtmlSelectOneListbox;
import javax.faces.component.html.HtmlSelectOneRadio;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import javax.faces.event.ValueChangeEvent;
import javax.faces.model.SelectItem;
import javax.naming.InitialContext;
import javax.servlet.http.HttpServletRequest;
import ec.edu.epn.seguridad.servicio.ServicioSeguridad;
import ec.edu.epn.seguridad.vo.Aplicacion;
import ec.edu.epn.seguridad.vo.Menu;
public class GestionMenus implements Serializable{
private static final long serialVersionUID = 1979325576485954289L;
private ServicioSeguridad ss;
{
try {
InitialContext ctx = new InitialContext();
ss = (ServicioSeguridad) ctx.lookup("java:global/ServiciosSeguridadEPN/ServicioSeguridadBean!ec.edu.epn.seguridad.servicio.ServicioSeguridad");
} catch(Exception e) {
e.printStackTrace();
}
}
private String nomAplicacion;
private List<SelectItem> opcionesActivo = new ArrayList<SelectItem>();
private List<SelectItem> menusPorAplicacion;
///Valores a usar para el ingreso de informacin
private String nombre;
private String descripcion;
private String url;
private String activo;
private String tipo;
///Componentes para el ingreso de informacin
private HtmlSelectOneListbox tipoMenu;
private HtmlSelectOneListbox carpetaPadre;
private HtmlSelectOneListbox comboBoxAplicacion;
///Componentes para la actualizacion o modificacion de mens y opciones
///Escoger el men a modificar
private HtmlSelectOneListbox comboAplicaUpdate;
private HtmlSelectOneListbox menuPadreUpdate;
private HtmlSelectOneListbox opcionUpdate;
private List<SelectItem> opcionesPorMenu;
private List<SelectItem> listaOrdenMenuPadre;
private List<SelectItem> listaOrdenPorMenu;
///En esta lista se cargar el orden del Menu u Opciones
///dependiendo de si se selecciona uno u otro con el radio
private List<SelectItem> listaOrden;
private String tipoMenuString;
private HtmlSelectOneRadio tipoMenuIn;
///Modificar los campos de manera automtica
private HtmlSelectOneListbox aplicacionUpdateIn;
private HtmlOutputText aplicacionActualOut;
private HtmlSelectOneListbox menuPadreUpdateIn;
private String menuPadreNombre;
private HtmlOutputText menuPadreActualOut;
private String nombreMenu;
private UIInput nombreMenuIn;
private HtmlOutputText nombreMenuOut;
private String descripcionMenu;
private UIInput descripcionMenuIn;
private HtmlOutputText descripcionMenuOut;
private String urlMenu;
private UIInput urlMenuIn;
private HtmlOutputText urlMenuOut;
private HtmlSelectOneListbox ordenMenuIn;
private HtmlOutputText ordenMenuOut;
private String estadoMenu;
private HtmlSelectOneRadio estadoMenuIn;
///Badera para saber que Componente esta haciendo el cambio
private String componente;
///Lista de Mens
private List<Menu> listaMenusObjetos;
//Estilos para los mensajes de Error
private String style;
private String styleSuccess="COLOR: #008000;";
private String styleError="COLOR: #fc5868;";
private String msgAdd;
private String msgUp;
public List<SelectItem> getMenusPorAplicacionIngreso(){
if((String)comboBoxAplicacion.getValue()!=null ){
nomAplicacion = (String)comboBoxAplicacion.getValue();
}
return getMenusPorAplicacion();
}
public List<SelectItem> getMenusPorAplicacionSeleccion(){
if((String)comboAplicaUpdate.getValue()!=null ){
nomAplicacion = (String)comboAplicaUpdate.getValue();
}
return getMenusPorAplicacion();
}
public List<SelectItem> getMenusPorAplicacionUpdate(){
if((String)aplicacionUpdateIn.getValue()!=null ){
nomAplicacion = (String)aplicacionUpdateIn.getValue();
}
List<SelectItem> temp = getMenusPorAplicacion();
temp.add(new SelectItem(" ","Ninguno"));
return temp;
}
public List<SelectItem> getMenusPorAplicacion() {
menusPorAplicacion = new ArrayList<SelectItem>();
if (nomAplicacion == null) {
SelectItem i = new SelectItem();
i.setValue("");
i.setDescription("");
i.setLabel("");
menusPorAplicacion.add(i);
} else {
List<Menu> resultadoBusqueda = ss
.consultarMenusPorAplicacion(nomAplicacion);
Collections.sort(resultadoBusqueda, new ComparatorAdmin());
if (resultadoBusqueda != null) {
for (Menu m : resultadoBusqueda) {
SelectItem i = new SelectItem();
i.setValue(m.getId());
i.setLabel(m.getNombre());
i.setDescription(m.getDescripcion());
menusPorAplicacion.add(i);
}
}
}
return menusPorAplicacion;
}
public List<SelectItem> getListaOrdenMenuPadre() {
nomAplicacion = (String)comboAplicaUpdate.getValue()==null ? (String)aplicacionUpdateIn.getValue() :
(String)comboAplicaUpdate.getValue();
listaOrdenMenuPadre = new ArrayList<SelectItem>();
try{
String selectedMenuPadre = (String)menuPadreUpdate.getValue()==null ? " " : (String)menuPadreUpdate.getValue();
if(selectedMenuPadre.trim().equals("")){
throw new Exception();
}
Menu menuPadreT = ss.obtenerMenu(selectedMenuPadre);
String menuPadre = menuPadreT.getMenuPadre()==null ? " " : menuPadreT.getMenuPadre().getNombre();
ArrayList<Integer> listaOrdenIntegers = new ArrayList<Integer>();
if (nomAplicacion == null) {
SelectItem i = new SelectItem();
i.setValue("");
i.setDescription("");
i.setLabel("");
listaOrdenMenuPadre.add(i);
} else {
List<Menu> resultadoBusqueda = ss.consultarMenusConIgualPadre(nomAplicacion, menuPadre==null ? " " : menuPadre);
if (resultadoBusqueda != null) {
for (Menu m : resultadoBusqueda) {
listaOrdenIntegers.add(m.getOrden());
}
}
Collections.sort(listaOrdenIntegers);
for (Integer item : listaOrdenIntegers) {
SelectItem j = new SelectItem();
j.setValue(item.toString());
j.setLabel(item.toString());
listaOrdenMenuPadre.add(j);
}
}
}catch(Exception e){
SelectItem i = new SelectItem();
i.setValue("");
i.setDescription("");
i.setLabel("");
// listaOrdenMenuPadre = new ArrayList<SelectItem>();
listaOrdenMenuPadre.add(i);
}
return listaOrdenMenuPadre;
}
public List<SelectItem> getOpcionesPorMenu() {
nomAplicacion = (String)comboAplicaUpdate.getValue()==null ? (String)aplicacionUpdateIn.getValue() :
(String)comboAplicaUpdate.getValue();
String menuPadre = (String)menuPadreUpdate.getValue();
opcionesPorMenu = new ArrayList<SelectItem>();
listaOrdenPorMenu = new ArrayList<SelectItem>();
ArrayList<Integer> listaOrdenIntegers = new ArrayList<Integer>();
if (menuPadre == null) {
SelectItem i = new SelectItem();
i.setValue("");
i.setDescription("");
i.setLabel("");
opcionesPorMenu.add(i);
listaOrdenPorMenu.add(i);
} else {
List<Menu> resultadoBusqueda = ss
.consultarOpcionesPorMenu(nomAplicacion, menuPadre );
Collections.sort(resultadoBusqueda, new ComparatorAdmin());
if (resultadoBusqueda != null) {
for (Menu m : resultadoBusqueda) {
SelectItem i = new SelectItem();
i.setValue(m.getId());
i.setLabel(m.getNombre());
i.setDescription(m.getDescripcion());
opcionesPorMenu.add(i);
listaOrdenIntegers.add(m.getOrden());
}
}
Collections.sort(listaOrdenIntegers);
for (Integer item : listaOrdenIntegers) {
SelectItem j = new SelectItem();
j.setValue(item.toString());
j.setLabel(item.toString());
listaOrdenPorMenu.add(j);
}
}
return opcionesPorMenu;
}
public List<SelectItem> getListaOrdenPorMenu(){
nomAplicacion = (String)comboAplicaUpdate.getValue()==null ? (String)aplicacionUpdateIn.getValue() :
(String)comboAplicaUpdate.getValue();
String menuPadre = (String)menuPadreUpdate.getValue()==null ? (String)menuPadreUpdateIn.getValue() :
(String)menuPadreUpdate.getValue();
listaOrdenPorMenu = new ArrayList<SelectItem>();
ArrayList<Integer> listaOrdenIntegers = new ArrayList<Integer>();
if (menuPadre == null) {
SelectItem i = new SelectItem();
i.setValue("");
i.setDescription("");
i.setLabel("");
listaOrdenPorMenu.add(i);
} else {
List<Menu> resultadoBusqueda = ss
.consultarOpcionesPorMenu(nomAplicacion, menuPadre );
if (resultadoBusqueda != null) {
for (Menu m : resultadoBusqueda) {
listaOrdenIntegers.add(m.getOrden());
}
}
Collections.sort(listaOrdenIntegers);
for (Integer item : listaOrdenIntegers) {
SelectItem j = new SelectItem();
j.setValue(item.toString());
j.setLabel(item.toString());
listaOrdenPorMenu.add(j);
}
}
return listaOrdenPorMenu;
}
public void cargarMenusPadres(ActionEvent event) {
FacesContext fc = FacesContext.getCurrentInstance();
HttpServletRequest request = (HttpServletRequest) fc
.getExternalContext().getRequest();
String nomAplica = request
.getParameter("formNuevoMenu:fn_nomAplicacion");
setNomAplicacion(nomAplica);
}
public void setNombreAplicacion(ValueChangeEvent event){
if(event.getNewValue()!=null){
setNomAplicacion((String)event.getNewValue());
componente = event.getComponent().getId();
if(componente.equals("fn_nomAplicacion")){
comboBoxAplicacion.setValue(nomAplicacion);
}if(componente.equals("nomAplicacionUpdate")){
comboAplicaUpdate.setValue(nomAplicacion);
}if(componente.equals("aplicacionUpdateIn")){
aplicacionUpdateIn.setValue(nomAplicacion);
}
}
// if(event.getComponent().getId().contains("aplicacionUpdateIn")
// || event.getComponent().getId().contains("menuPadreUpdateIn")){
// ordenMenuIn.setDisabled(true);
// }
// if(event.getComponent().getId().contains("nomAplicacionUpdate")
// || event.getComponent().getId().contains("listaMenuPadres")
// || event.getComponent().getId().contains("listaMenuOpciones")){
// ordenMenuIn.setDisabled(false);
// }
}
public void setMenuPadreUpdateM(ValueChangeEvent event){
if(event.getNewValue()!=null){
setMenuPadreNombre((String)event.getNewValue());
menuPadreUpdateIn.setValue(menuPadreNombre);
}
}
public void setNombreM(ValueChangeEvent event){
if(event.getNewValue()!=null){
setNombreMenu((String)event.getNewValue());
nombreMenuIn.setValue(nombreMenu);
}
}
public void setDescripcionM(ValueChangeEvent event){
if(event.getNewValue()!=null){
setDescripcionMenu((String)event.getNewValue());
descripcionMenuIn.setValue(descripcionMenu);
}
}
public void setUrlM(ValueChangeEvent event){
if(event.getNewValue()!=null){
setUrlMenu((String)event.getNewValue());
urlMenuIn.setValue(urlMenu);
}
}
public void setOrdenMenuM(ValueChangeEvent event){
if(event.getNewValue()!=null){
ordenMenuIn.setValue(Integer.parseInt((String)event.getNewValue()));
}
}
public void setEstadoM(ValueChangeEvent event){
if(event.getNewValue()!=null){
setEstadoMenu((String)event.getNewValue());
estadoMenuIn.setValue(estadoMenu);
}
}
public void guardarMenu(ActionEvent event) {
Menu m = new Menu();
try{
if(nombre.trim().equals("") || descripcion.trim().equals("") ||
activo.trim().equals("") || tipo.trim().equals("") ||
((String)comboBoxAplicacion.getValue()).equals("")){
throw new Exception();
}else{
long id = ss.selectMaxIDMenu()+1L;
m.setId(id);
m.setNombre(nombre.trim());
if(url.trim().equals("")){
m.setUrl(null);
}else{
m.setUrl(url.trim());
}
m.setDescripcion(descripcion.trim());
m.setActivo(activo.trim());
m.setTipo(tipo.trim());
Menu menuPadresito = new Menu();
String carpPadre = (String)carpetaPadre.getValue();
if(!carpPadre.equals("")){
menuPadresito = ss.obtenerMenu((String)carpetaPadre.getValue());
m.setMenuPadre(menuPadresito);
}
long idAplicacion = 0L;
List<Aplicacion> aplicaciones = ss.consultarAplicaciones();
Aplicacion appMenu = new Aplicacion();
for(Aplicacion app : aplicaciones){
if(app.getNombre().equals((String)comboBoxAplicacion.getValue())){
idAplicacion=app.getId();
appMenu = app;
break;
}
}
m.setAplicacion(appMenu);
long idMenuPadre;
idMenuPadre = menuPadresito.getId();
int maxOrder = ss.getMaxMenuOrdenByMenuPadreAndAplicacion(idMenuPadre, idAplicacion);
m.setOrden(maxOrder+1);
ss.guardarMenu(m);
setStyle(getStyleSuccess());
setMsgAdd("Men ingresado con xito");
}
}catch(Exception e){
setStyle(getStyleError());
setMsgAdd("La operacin no fue completada");
}
}
public void actualizarMenu(ActionEvent event){
try{
FacesContext fct = FacesContext.getCurrentInstance();
HttpServletRequest request = (HttpServletRequest) fct
.getExternalContext().getRequest();
String nomAplica = request
.getParameter("menuUpdate:aplicacionUpdateIn");
setNomAplicacion(nomAplica);
if(nomAplicacion.trim().equals("") || ((String)nombreMenuIn.getValue()).trim().equals("") ||
((String)descripcionMenuIn.getValue()).trim().equals("") ||
((Integer) ordenMenuIn.getValue())==null || ((String)estadoMenuIn.getValue()).equals("")){
throw new Exception();
}else{
tipoMenuString = (String)tipoMenuIn.getValue();
if(tipoMenuString.equals("opcion")){
Menu m = new Menu();
m = ss.obtenerMenu((String)opcionUpdate.getValue());
if(!m.getAplicacion().getNombre().equals(nomAplicacion)){
FacesContext fc = FacesContext.getCurrentInstance();
if(m.getMenuPadre().getNombre().equals((String)menuPadreUpdateIn.getValue())){
fc.addMessage("menuPadreUpdateIn", new FacesMessage(FacesMessage.SEVERITY_INFO,
"Debe elegir un menu padre distinto",null));
fc.addMessage("ordenMenuIn", new FacesMessage(FacesMessage.SEVERITY_INFO,
"El orden se seleccionar automticamente",null));
return;
}else{
fc.addMessage("ordenMenuIn", new FacesMessage(FacesMessage.SEVERITY_INFO,
"El orden se seleccionar automticamente",null));
//////GUARDAR MENUS CON ORDEN ELEGIDO AUTOMATICAMENTE///////
actualizarMenuOrden(m,"auto",event);
setStyle(getStyleSuccess());
setMsgUp("Men actualizado con xito");
}
return;
}else if(m.getAplicacion().getNombre().equals(nomAplicacion)){
FacesContext fc = FacesContext.getCurrentInstance();
if(m.getMenuPadre().getNombre().equals(menuPadreUpdateIn.getValue())){
if(m.getOrden() != (Integer) ordenMenuIn.getValue()){
//////GUARDAR MENUS CON ORDEN ELEGIDO POR EL USUARIO///////
actualizarMenuOrden(m,"user",event);
setStyle(getStyleSuccess());
setMsgUp("Men actualizado con xito");
}else{
actualizarMenuOrden(m,"ninguno",event);
setStyle(getStyleSuccess());
setMsgUp("Men actualizado con xito");
}
}else{
fc.addMessage("ordenMenuIn", new FacesMessage(FacesMessage.SEVERITY_INFO,
"El orden se seleccionar automticamente",null));
//////GUARDAR MENUS CON ORDEN ELEGIDO AUTOMATICAMENTE///////
actualizarMenuOrden(m,"auto",event);
setStyle(getStyleSuccess());
setMsgUp("Men actualizado con xito");
}
return;
}
}
if(tipoMenuString.equals("menu")){
Menu m = new Menu();
m = ss.obtenerMenu((String)menuPadreUpdate.getValue());
if(!m.getAplicacion().getNombre().equals(nomAplicacion)){
FacesContext fc = FacesContext.getCurrentInstance();
fc.addMessage("ordenMenuIn", new FacesMessage(FacesMessage.SEVERITY_INFO,
"El orden se seleccionar automticamente",null));
//////GUARDAR MENUS CON ORDEN ELEGIDO AUTOMATICAMENTE///////
actualizarMenuOrden(m,"auto",event);
setStyle(getStyleSuccess());
setMsgUp("Men actualizado con xito");
return;
}
if(m.getAplicacion().getNombre().equals(nomAplicacion)){
FacesContext fc = FacesContext.getCurrentInstance();
String menuPadre = (String)menuPadreUpdateIn.getValue()==null ? "" : (String)menuPadreUpdateIn.getValue();
if(menuPadre.trim().equals("")){
if(m.getOrden() != (Integer) ordenMenuIn.getValue()){
//////GUARDAR MENUS CON ORDEN ELEGIDO POR EL USUARIO///////
actualizarMenuOrden(m,"user",event);
setStyle(getStyleSuccess());
setMsgUp("Men actualizado con xito");
}else{
actualizarMenuOrden(m,"ninguno",event);
setStyle(getStyleSuccess());
setMsgUp("Men actualizado con xito");
}
return;
}
String menuPadreBase = m.getMenuPadre()==null ? "" : m.getMenuPadre().getNombre();
if(menuPadreBase.equals(menuPadreUpdateIn.getValue())){
if(m.getOrden() != (Integer) ordenMenuIn.getValue()){
//////GUARDAR MENUS CON ORDEN ELEGIDO POR EL USUARIO///////
actualizarMenuOrden(m,"user",event);
setStyle(getStyleSuccess());
setMsgUp("Men actualizado con xito");
}else{
actualizarMenuOrden(m,"ninguno",event);
setStyle(getStyleSuccess());
setMsgUp("Men actualizado con xito");
}
return;
}else{
fc.addMessage("ordenMenuIn", new FacesMessage(FacesMessage.SEVERITY_INFO,
"El orden se seleccionar automticamente",null));
//////GUARDAR MENUS CON ORDEN ELEGIDO AUTOMATICAMENTE///////
actualizarMenuOrden(m,"auto",event);
setStyle(getStyleSuccess());
setMsgUp("Men actualizado con xito");
return;
}
}
}
}
}catch(Exception e){
e.printStackTrace();
setStyle(getStyleError());
setMsgUp("La operacin no fue completada");
}
}
public void actualizarMenuOrden(Menu m, String ordenAutomatico, ActionEvent event){
// m.setNombre(nombreMenu);
// m.setUrl(urlMenu);
// m.setDescripcion(descripcionMenu);
// m.setActivo(estadoMenu);
m.setNombre(((String)nombreMenuIn.getValue()).trim());
String url = ((String)urlMenuIn.getValue())==null ? "" : ((String)urlMenuIn.getValue()).trim();
if(url.equals("")){
m.setUrl(null);
}else{
m.setUrl(url);
}
m.setDescripcion(((String)descripcionMenuIn.getValue()).trim());
m.setActivo((String)estadoMenuIn.getValue());
Menu menuPadresito = new Menu();
String carpPadre = (String)menuPadreUpdateIn.getValue()==null ? "" :
(((String)menuPadreUpdateIn.getValue()).equals("Ninguno") ? "" : (String)menuPadreUpdateIn.getValue());
if(!carpPadre.trim().equals("")){
menuPadresito = ss.obtenerMenu((String)menuPadreUpdateIn.getValue());
}
long idAplicacion = 0L;
List<Aplicacion> aplicaciones = ss.consultarAplicaciones();
Aplicacion appMenu = new Aplicacion();
for(Aplicacion app : aplicaciones){
if(app.getNombre().equals(nomAplicacion)){
idAplicacion=app.getId();
appMenu = app;
break;
}
}
///Debo hacer antes de setear la nueva aplicacion y el menu padre
long idMenuPadre;
idMenuPadre = menuPadresito.getId();
int maxOrder = 0;
tipoMenuString = (String)tipoMenuIn.getValue();
if(tipoMenuString.equals("opcion")){
idMenuPadre = menuPadresito.getId();
maxOrder = ss.getMaxMenuOrdenByMenuPadreAndAplicacion(idMenuPadre, idAplicacion);
}
if(tipoMenuString.equals("menu")){
maxOrder = ss.getMaxMenuOrdenByMenuPadreAndAplicacion(idMenuPadre, idAplicacion);
}
if(!carpPadre.trim().equals("")){
m.setMenuPadre(menuPadresito);
}else{
m.setMenuPadre(null);
}
m.setAplicacion(appMenu);
if(ordenAutomatico.equals("auto")){
m.setOrden(maxOrder+1);
}if(ordenAutomatico.equals("user")){
m.setOrden((Integer)ordenMenuIn.getValue());
}if(ordenAutomatico.equals("ninguno")){
}
ss.actualizarMenu(m);
limpiarComponentesMenusTotal(event);
}
public List<SelectItem> getOpcionesActivo() {
SelectItem i = new SelectItem();
i.setValue("SI");
i.setLabel("Si");
opcionesActivo.add(i);
SelectItem j = new SelectItem();
j.setValue("NO");
j.setLabel("No");
opcionesActivo.add(j);
return opcionesActivo;
}
public void cargarModificarMenu(ValueChangeEvent event){
tipoMenuString = (String)event.getNewValue()==null ? " " : (String)event.getNewValue();
setNomAplicacion(((String)comboAplicaUpdate.getValue()==null ? (String)aplicacionUpdateIn.getValue() :
(String)comboAplicaUpdate.getValue()));
limpiarComponentesMenus(new ActionEvent(event.getComponent()));
if(tipoMenuString.equals("opcion")){
try{
Menu m = ss.obtenerMenu((String)opcionUpdate.getValue());
aplicacionUpdateIn.setValue(m.getAplicacion().getNombre());
aplicacionActualOut.setValue("Actual: " + m.getAplicacion().getNombre());
menuPadreUpdateIn.setValue(m.getMenuPadre().getNombre());
menuPadreActualOut.setValue("Actual: " + m.getMenuPadre().getNombre());
nombreMenuIn.setValue(m.getNombre());
nombreMenuOut.setValue("Actual: " + m.getNombre());
descripcionMenuIn.setValue(m.getDescripcion());
descripcionMenuOut.setValue("Actual: " + m.getDescripcion());
HtmlInputText urlIn = (HtmlInputText)urlMenuIn;
urlIn.setDisabled(false);
urlMenuIn.setValue(m.getUrl());
urlMenuOut.setValue("Actual: " + m.getUrl());
ordenMenuIn.setValue(m.getOrden());
ordenMenuOut.setValue("Actual: " + m.getOrden());
String activo = m.getActivo();
setEstadoMenu(activo);
estadoMenuIn.setValue(activo);
} catch (Exception e){
System.out.println("No entity found for query");
}
}
if(tipoMenuString.equals("menu")){
try{
Menu m = ss.obtenerMenu((String)menuPadreUpdate.getValue());
aplicacionUpdateIn.setValue(m.getAplicacion().getNombre());
aplicacionActualOut.setValue("Actual: " + m.getAplicacion().getNombre());
String menuPadreNombre = m.getMenuPadre()==null ? " " : m.getMenuPadre().getNombre();
menuPadreUpdateIn.setValue(menuPadreNombre);
menuPadreActualOut.setValue("Actual: " + menuPadreNombre);
nombreMenuIn.setValue(m.getNombre());
nombreMenuOut.setValue("Actual: " + m.getNombre());
descripcionMenuIn.setValue(m.getDescripcion());
descripcionMenuOut.setValue("Actual: " + m.getDescripcion());
HtmlInputText urlIn = (HtmlInputText)urlMenuIn;
urlIn.setDisabled(false);
urlMenuIn.setValue(m.getUrl());
urlMenuOut.setValue("Actual: " + m.getUrl());
ordenMenuIn.setValue(m.getOrden());
ordenMenuOut.setValue("Actual: " + m.getOrden());
String activo = m.getActivo();
setEstadoMenu(activo);
estadoMenuIn.setValue(activo);
}catch (Exception e){
System.out.println("No entity found for query");
}
}
}
public void limpiarComponentesMenus(ActionEvent event){
aplicacionUpdateIn.setValue(" ");
aplicacionActualOut.setValue(" ");
menuPadreUpdateIn.setValue(" ");
menuPadreActualOut.setValue(" ");
nombreMenuIn.setValue(" ");
nombreMenuOut.setValue(" ");
descripcionMenuIn.setValue(" ");
descripcionMenuOut.setValue(" ");
urlMenuIn.setValue(" ");
urlMenuOut.setValue(" ");
ordenMenuIn.setValue(" ");
ordenMenuOut.setValue(" ");
estadoMenuIn.setValue(" ");
}
public void limpiarComponentesMenusTotal(ActionEvent event){
comboAplicaUpdate.setValue(" ");
menuPadreUpdate.setValue(" ");
opcionUpdate.setValue(" ");
tipoMenuIn.setValue("");
limpiarComponentesMenus(event);
}
public void setOpcionesActivo(List<SelectItem> opcionesActivo) {
this.opcionesActivo = opcionesActivo;
}
public HtmlSelectOneListbox getComboAplicaUpdate() {
return comboAplicaUpdate;
}
public void setComboAplicaUpdate(HtmlSelectOneListbox comboAplicaUpdate) {
this.comboAplicaUpdate = comboAplicaUpdate;
}
public HtmlSelectOneListbox getMenuPadreUpdate() {
return menuPadreUpdate;
}
public void setMenuPadreUpdate(HtmlSelectOneListbox menuPadreUpdate) {
this.menuPadreUpdate = menuPadreUpdate;
}
public HtmlSelectOneListbox getOpcionUpdate() {
return opcionUpdate;
}
public void setOpcionUpdate(HtmlSelectOneListbox opcionUpdate) {
this.opcionUpdate = opcionUpdate;
}
public HtmlSelectOneListbox getTipoMenu() {
return tipoMenu;
}
public void setTipoMenu(HtmlSelectOneListbox tipoMenu) {
this.tipoMenu = tipoMenu;
}
public HtmlSelectOneListbox getCarpetaPadre() {
return carpetaPadre;
}
public HtmlSelectOneListbox getComboBoxAplicacion() {
return comboBoxAplicacion;
}
public void setComboBoxAplicacion(HtmlSelectOneListbox comboBoxAplicacion) {
this.comboBoxAplicacion = comboBoxAplicacion;
}
public void setCarpetaPadre(HtmlSelectOneListbox carpetaPadre) {
this.carpetaPadre = carpetaPadre;
}
public String getTipo() {
return tipo;
}
public void setTipo(String tipo) {
this.tipo = tipo;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public String getDescripcion() {
return descripcion;
}
public void setDescripcion(String descripcion) {
this.descripcion = descripcion;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getActivo() {
return activo;
}
public void setActivo(String activo) {
this.activo = activo;
}
public String getNomAplicacion() {
return nomAplicacion;
}
public void setNomAplicacion(String nomAplicacion) {
this.nomAplicacion = nomAplicacion;
}
public void setMenusPorAplicacion(List<SelectItem> menusPorAplicacion) {
this.menusPorAplicacion = menusPorAplicacion;
}
///////////////////////////Nuevos////////////////////////////////////
public String getTipoMenuString() {
return tipoMenuString;
}
public void setTipoMenuString(String tipoMenuString) {
this.tipoMenuString = tipoMenuString;
}
public HtmlSelectOneRadio getTipoMenuIn() {
return tipoMenuIn;
}
public void setTipoMenuIn(HtmlSelectOneRadio tipoMenuIn) {
this.tipoMenuIn = tipoMenuIn;
}
public HtmlSelectOneListbox getAplicacionUpdateIn() {
return aplicacionUpdateIn;
}
public void setAplicacionUpdateIn(HtmlSelectOneListbox aplicacionUpdateIn) {
this.aplicacionUpdateIn = aplicacionUpdateIn;
}
public HtmlSelectOneListbox getMenuPadreUpdateIn() {
return menuPadreUpdateIn;
}
public void setMenuPadreUpdateIn(HtmlSelectOneListbox menuPadreUpdateIn) {
this.menuPadreUpdateIn = menuPadreUpdateIn;
}
public String getNombreMenu() {
return nombreMenu;
}
public void setNombreMenu(String nombreMenu) {
this.nombreMenu = nombreMenu;
}
public UIInput getNombreMenuIn() {
return nombreMenuIn;
}
public void setNombreMenuIn(UIInput nombreMenuIn) {
this.nombreMenuIn = nombreMenuIn;
}
public HtmlOutputText getNombreMenuOut() {
return nombreMenuOut;
}
public void setNombreMenuOut(HtmlOutputText nombreMenuOut) {
this.nombreMenuOut = nombreMenuOut;
}
public String getDescripcionMenu() {
return descripcionMenu;
}
public void setDescripcionMenu(String descripcionMenu) {
this.descripcionMenu = descripcionMenu;
}
public UIInput getDescripcionMenuIn() {
return descripcionMenuIn;
}
public void setDescripcionMenuIn(UIInput descripcionMenuIn) {
this.descripcionMenuIn = descripcionMenuIn;
}
public HtmlOutputText getDescripcionMenuOut() {
return descripcionMenuOut;
}
public void setDescripcionMenuOut(HtmlOutputText descripcionMenuOut) {
this.descripcionMenuOut = descripcionMenuOut;
}
public String getUrlMenu() {
return urlMenu;
}
public void setUrlMenu(String urlMenu) {
this.urlMenu = urlMenu;
}
public UIInput getUrlMenuIn() {
return urlMenuIn;
}
public void setUrlMenuIn(UIInput urlMenuIn) {
this.urlMenuIn = urlMenuIn;
}
public HtmlOutputText getUrlMenuOut() {
return urlMenuOut;
}
public void setUrlMenuOut(HtmlOutputText urlMenuOut) {
this.urlMenuOut = urlMenuOut;
}
public HtmlSelectOneListbox getOrdenMenuIn() {
return ordenMenuIn;
}
public void setOrdenMenuIn(HtmlSelectOneListbox ordenMenuIn) {
this.ordenMenuIn = ordenMenuIn;
}
public String getEstadoMenu() {
return estadoMenu;
}
public void setEstadoMenu(String estadoMenu) {
this.estadoMenu = estadoMenu;
}
public HtmlSelectOneRadio getEstadoMenuIn() {
return estadoMenuIn;
}
public void setEstadoMenuIn(HtmlSelectOneRadio estadoMenuIn) {
this.estadoMenuIn = estadoMenuIn;
}
public HtmlOutputText getAplicacionActualOut() {
return aplicacionActualOut;
}
public void setAplicacionActualOut(HtmlOutputText aplicacionActualOut) {
this.aplicacionActualOut = aplicacionActualOut;
}
public HtmlOutputText getMenuPadreActualOut() {
return menuPadreActualOut;
}
public void setMenuPadreActualOut(HtmlOutputText menuPadreActualOut) {
this.menuPadreActualOut = menuPadreActualOut;
}
public void setListaOrdenPorMenu(List<SelectItem> listaOrdenPorMenu) {
this.listaOrdenPorMenu = listaOrdenPorMenu;
}
public void setOrdenMenuOut(HtmlOutputText ordenMenuOut) {
this.ordenMenuOut = ordenMenuOut;
}
public HtmlOutputText getOrdenMenuOut() {
return ordenMenuOut;
}
public void setListaOrdenMenuPadre(List<SelectItem> listaOrdenMenuPadre) {
this.listaOrdenMenuPadre = listaOrdenMenuPadre;
}
public List<SelectItem> getListaOrden() {
listaOrden = new ArrayList<SelectItem>();
if(((String)menuPadreUpdate.getValue())==null && ((String)opcionUpdate.getValue())==null
&& tipoMenuIn.getValue()==null){
listaOrden.add(new SelectItem(" "," "));
return listaOrden;
}
if(((String)menuPadreUpdate.getValue())==null && ((String)opcionUpdate.getValue())==null
&& tipoMenuIn.getValue()!=null){
listaOrden.add(new SelectItem(" "," "));
return listaOrden;
}
if(!((String)menuPadreUpdate.getValue()).isEmpty() && ((String)opcionUpdate.getValue())==null
&& tipoMenuIn.getValue()==null){
listaOrden.add(new SelectItem(" "," "));
return listaOrden;
}
if(!((String)menuPadreUpdate.getValue()).isEmpty() && ((String)opcionUpdate.getValue())==null///
&& tipoMenuIn.getValue()!=null){
setListaOrden(getListaOrdenMenuPadre());
return listaOrden;
}
if(!((String)menuPadreUpdate.getValue()).isEmpty() && !((String)opcionUpdate.getValue()).isEmpty()
&& tipoMenuIn.getValue()==null){
listaOrden.add(new SelectItem(" "," "));
return listaOrden;
}
if(!((String)menuPadreUpdate.getValue()).isEmpty() && tipoMenuIn.getValue()==null){
setListaOrden(getListaOrdenMenuPadre());
return listaOrden;
}
if(!((String)opcionUpdate.getValue()).isEmpty() && tipoMenuIn.getValue()==null){
setListaOrden(getListaOrdenPorMenu());
return listaOrden;
}
try{
if(tipoMenuIn.getValue().equals("menu")){
setListaOrden(getListaOrdenMenuPadre());
return listaOrden;
}
if(tipoMenuIn.getValue().equals("opcion")){
setListaOrden(getListaOrdenPorMenu());
return listaOrden;
}
}catch(Exception e){
e.printStackTrace();
listaOrden.add(new SelectItem(" "," "));
}
return listaOrden;
}
public List<Menu> getListaMenusObjetos() {
listaMenusObjetos = new ArrayList<Menu>();
listaMenusObjetos = ss.getListaMenus();
Collections.sort(listaMenusObjetos, new ComparatorAdmin());
return listaMenusObjetos;
}
public void setListaOrden(List<SelectItem> listaOrden) {
this.listaOrden = listaOrden;
}
public void setOpcionesPorMenu(List<SelectItem> opcionesPorMenu) {
this.opcionesPorMenu = opcionesPorMenu;
}
/////DEPRECATED///////
public Menu getObtenerMenu() {
Menu m = new Menu();
// para traer el objeto Aplicacion
Aplicacion apli = new Aplicacion();
apli = ss.obtenerAplicacion(nomAplicacion);
m.setAplicacion(apli);
// Para traer el objeto MenuPadre
FacesContext fc = FacesContext.getCurrentInstance();
HttpServletRequest request = (HttpServletRequest) fc
.getExternalContext().getRequest();
String nomMenuPadre = request.getParameter("formNuevoMenu:fn_listaMenuPadres");
Menu menuPadresito = new Menu();
menuPadresito = ss.obtenerMenu(nomMenuPadre);
m.setMenuPadre(menuPadresito);
m.setOrden(1);
return m;
}
///////////////////////////////////////////////////////////////////////////////
public void setMenuPadreNombre(String menuPadreNombre) {
this.menuPadreNombre = menuPadreNombre;
}
public String getMenuPadreNombre() {
return menuPadreNombre;
}
public void setComponente(String componente) {
this.componente = componente;
}
public String getComponente() {
return componente;
}
public void setListaMenusObjetos(List<Menu> listaMenusObjetos) {
this.listaMenusObjetos = listaMenusObjetos;
}
public void setStyle(String style) {
this.style = style;
}
public String getStyle() {
return style;
}
public void setStyleSuccess(String styleSuccess) {
this.styleSuccess = styleSuccess;
}
public String getStyleSuccess() {
return styleSuccess;
}
public void setStyleError(String styleError) {
this.styleError = styleError;
}
public String getStyleError() {
return styleError;
}
public void setMsgAdd(String msgAdd) {
this.msgAdd = msgAdd;
}
public String getMsgAdd() {
return msgAdd;
}
public void setMsgUp(String msgUp) {
this.msgUp = msgUp;
}
public String getMsgUp() {
return msgUp;
}
}
package ec.edu.epn.seguridad.VO;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
//import javax.ejb.EJB;
import javax.faces.component.UIParameter;
import javax.faces.component.html.HtmlInputHidden;
import javax.faces.component.html.HtmlSelectManyCheckbox;
import javax.faces.event.ActionEvent;
import javax.naming.InitialContext;
import ec.edu.epn.seguridad.servicio.ServicioSeguridad;
import ec.edu.epn.seguridad.vo.Autorizacion;
import ec.edu.epn.seguridad.vo.Menu;
import ec.edu.epn.seguridad.vo.Perfil;
public class GestionAutorizacion implements Serializable{
private static final long serialVersionUID = 1735849069486849238L;
private ServicioSeguridad ss;
{
try {
InitialContext ctx = new InitialContext();
ss = (ServicioSeguridad) ctx.lookup("java:global/ServiciosSeguridadEPN/ServicioSeguridadBean!ec.edu.epn.seguridad.servicio.ServicioSeguridad");
} catch(Exception e) {
e.printStackTrace();
}
}
///Ingreso de Autorizaciones
private String perfilIn;
private String perfilIDIn;
private String menuIn;
private String menuIDIn;
private List<String> permisosIn;
private List<Menu> menus;
///Modificacion de Autorizaciones
private List<Autorizacion> autorizaciones;
private String autorizacionIDIn;
private String autorizacionIDOut;
private String permisosString;
private HtmlSelectManyCheckbox permisosCheckbox;
//Estilos para los mensajes de Error
private String style;
private String styleSuccess="COLOR: #008000;";
private String styleError="COLOR: #fc5868;";
private String msgAdd;
private String msgUp;
public void guardarAutorizacion(ActionEvent event){
HtmlInputHidden idPerfil = (HtmlInputHidden) event.getComponent().findComponent("idPerfilIn");
Long auxIdPerfil = Long.parseLong(idPerfil.getValue().toString());
HtmlInputHidden idMenu = (HtmlInputHidden) event.getComponent().findComponent("idMenuIn");
Long auxIdMenu = Long.parseLong(idMenu.getValue().toString());
String permisos = "";
for(String per : permisosIn){
permisos = permisos + per + " ";;
}
Perfil p = new Perfil();
try{
if(perfilIDIn.trim().equals("") || menuIDIn.trim().equals("")){
throw new Exception();
}else{
p = ss.buscarPerfilPorID(auxIdPerfil);
Menu m = new Menu();
m = ss.obtenerMenuPorID(auxIdMenu);
Autorizacion autorizacion = new Autorizacion();
long id = ss.selectMaxIDAutorizacion()+1L;
autorizacion.setId(id);
autorizacion.setPerfil(p);
autorizacion.setMenu(m);
autorizacion.setPermisos(permisos.trim().equals("") ? null : permisos.trim());
ss.guardarAutorizacion(autorizacion);
setStyle(getStyleSuccess());
setMsgAdd("Autorizacin ingresada con xito");
setPerfilIDIn("");
setMenuIDIn("");
List<String> permisosTemp = new ArrayList<String>();
for(int i=0; i<4; i++ ){
permisosTemp.add("");
}
setPermisosIn(permisosTemp);
}
}catch(Exception e){
e.printStackTrace();
setStyle(getStyleError());
setMsgAdd("La operacin no fue completada");
}
}
public void actualizarAutorizacion(ActionEvent event){
HtmlInputHidden idAutorizacion = (HtmlInputHidden) event.getComponent().findComponent("idAutorizacionIn");
Long auxIdAutorizacion = Long.parseLong(idAutorizacion.getValue().toString());
HtmlInputHidden idPerfil = (HtmlInputHidden) event.getComponent().findComponent("idPerfilUpdate");
Long auxIdPerfil = Long.parseLong(idPerfil.getValue().toString());
HtmlInputHidden idMenu = (HtmlInputHidden) event.getComponent().findComponent("idMenuUpdate");
Long auxIdMenu = Long.parseLong(idMenu.getValue().toString());
String permisos = "";
for(String per : permisosIn){
permisos = permisos + per + " ";;
}
try{
Perfil p = new Perfil();
p = ss.buscarPerfilPorID(auxIdPerfil);
Menu m = new Menu();
m = ss.obtenerMenuPorID(auxIdMenu);
Autorizacion autorizacion = new Autorizacion();
autorizacion = ss.buscarAutorizacionPorID(auxIdAutorizacion);
autorizacion.setPerfil(p);
autorizacion.setMenu(m);
autorizacion.setPermisos(permisos);
ss.actualizarAutorizacion(autorizacion);
List<String> permisosList = new ArrayList<String>();
for(int i=0; i<4; i++){
permisosList.add(i, "");
}
setPermisosIn(permisosList);
permisosCheckbox.setValue(permisos);
setStyle(getStyleSuccess());
setMsgUp("Autorizacin modificada con xito");
}catch(Exception e){
e.printStackTrace();
setStyle(getStyleError());
setMsgAdd("La operacin no fue completada");
}
}
public void seleccionarPerfil(ActionEvent event){
UIParameter componentNombre = (UIParameter) event.getComponent().findComponent("nombPerfil");
String auxNombPerfil = componentNombre.getValue().toString();
UIParameter componentID = (UIParameter) event.getComponent().findComponent("idPerfil");
String auxIdPerfil = componentID.getValue().toString();
setPerfilIn(auxNombPerfil);
setPerfilIDIn(auxIdPerfil);
}
public void seleccionarMenu(ActionEvent event){
UIParameter componentNombre = (UIParameter) event.getComponent().findComponent("nombMenu");
String auxNombMenu = componentNombre.getValue().toString();
UIParameter componentID = (UIParameter) event.getComponent().findComponent("idMenu");
String auxIdMenu = componentID.getValue().toString();
setMenuIn(auxNombMenu);
setMenuIDIn(auxIdMenu);
}
public void seleccionarAutorizacion(ActionEvent event){
UIParameter componentAutoNombre = (UIParameter) event.getComponent().findComponent("idAutorizacion");
String auxIdAutorizacion = componentAutoNombre.getValue().toString();
setAutorizacionIDIn(auxIdAutorizacion);
setAutorizacionIDOut(auxIdAutorizacion);
UIParameter componentPerfilNombre = (UIParameter) event.getComponent().findComponent("nombPerfilUpdate");
String auxNombPerfil = componentPerfilNombre.getValue().toString();
UIParameter componentPerfilID = (UIParameter) event.getComponent().findComponent("idPerfilSelectUpdate");
String auxIdPerfil = componentPerfilID.getValue().toString();
setPerfilIn(auxNombPerfil);
setPerfilIDIn(auxIdPerfil);
UIParameter componentMenuNombre = (UIParameter) event.getComponent().findComponent("nombMenuUpdate");
String auxNombMenu = componentMenuNombre.getValue().toString();
UIParameter componentMenuID = (UIParameter) event.getComponent().findComponent("idMenuSelectUpdate");
String auxIdMenu = componentMenuID.getValue().toString();
setMenuIn(auxNombMenu);
setMenuIDIn(auxIdMenu);
UIParameter componentPermisos = (UIParameter) event.getComponent().findComponent("permUpdate");
String auxPermisos = componentPermisos.getValue().toString();
setPermisosString(auxPermisos);
List<String> permisos = new ArrayList<String>();
String[] permisosArray = permisosString.split("[ ]");
for(int i=0; i<permisosArray.length; i++){
permisos.add(i, permisosArray[i]);
}
setPermisosIn(permisos);
permisosCheckbox.setValue(permisos);
}
public List<Menu> getMenus() {
menus = new ArrayList<Menu>();
menus = ss.getListaMenus();
Collections.sort(menus, new ComparatorAdmin());
return menus;
}
public List<Autorizacion> getAutorizaciones() {
autorizaciones = new ArrayList<Autorizacion>();
autorizaciones = ss.getListaAutorizaciones();
return autorizaciones;
}
public void setMenus(List<Menu> menus) {
this.menus = menus;
}
public String getPerfilIDIn() {
return perfilIDIn;
}
public void setPerfilIDIn(String perfilIDIn) {
this.perfilIDIn = perfilIDIn;
}
public String getMenuIDIn() {
return menuIDIn;
}
public void setMenuIDIn(String menuIDIn) {
this.menuIDIn = menuIDIn;
}
public String getPerfilIn() {
return perfilIn;
}
public void setPerfilIn(String perfilIn) {
this.perfilIn = perfilIn;
}
public String getMenuIn() {
return menuIn;
}
public void setMenuIn(String menuIn) {
this.menuIn = menuIn;
}
public List<String> getPermisosIn() {
return permisosIn;
}
public void setPermisosIn(List<String> permisosIn) {
this.permisosIn = permisosIn;
}
public void setAutorizacionIDIn(String autorizacionIDIn) {
this.autorizacionIDIn = autorizacionIDIn;
}
public String getAutorizacionIDIn() {
return autorizacionIDIn;
}
public void setAutorizacionIDOut(String autorizacionIDOut) {
this.autorizacionIDOut = autorizacionIDOut;
}
public String getAutorizacionIDOut() {
return autorizacionIDOut;
}
public void setPermisosString(String permisosString) {
this.permisosString = permisosString;
}
public String getPermisosString() {
return permisosString;
}
public void setAutorizaciones(List<Autorizacion> autorizaciones) {
this.autorizaciones = autorizaciones;
}
public void setStyle(String style) {
this.style = style;
}
public String getStyle() {
return style;
}
public void setStyleSuccess(String styleSuccess) {
this.styleSuccess = styleSuccess;
}
public String getStyleSuccess() {
return styleSuccess;
}
public void setStyleError(String styleError) {
this.styleError = styleError;
}
public String getStyleError() {
return styleError;
}
public void setMsgAdd(String msgAdd) {
this.msgAdd = msgAdd;
}
public String getMsgAdd() {
return msgAdd;
}
public void setMsgUp(String msgUp) {
this.msgUp = msgUp;
}
public String getMsgUp() {
return msgUp;
}
public void setPermisosCheckbox(HtmlSelectManyCheckbox permisosCheckbox) {
this.permisosCheckbox = permisosCheckbox;
}
public HtmlSelectManyCheckbox getPermisosCheckbox() {
return permisosCheckbox;
}
}
package ec.edu.epn.seguridad.VO;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
//import javax.ejb.EJB;
import javax.faces.component.UIInput;
import javax.faces.component.html.HtmlOutputText;
import javax.faces.component.html.HtmlSelectOneRadio;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import javax.faces.event.ValueChangeEvent;
import javax.faces.model.SelectItem;
import javax.naming.InitialContext;
import javax.servlet.http.HttpServletRequest;
import ec.edu.epn.seguridad.servicio.ServicioSeguridad;
import ec.edu.epn.seguridad.vo.Perfil;
public class GestionPerfil implements Serializable {
private static final long serialVersionUID = -1412226353696522505L;
private ServicioSeguridad ss;
{
try {
InitialContext ctx = new InitialContext();
ss = (ServicioSeguridad) ctx.lookup("java:global/ServiciosSeguridadEPN/ServicioSeguridadBean!ec.edu.epn.seguridad.servicio.ServicioSeguridad");
} catch(Exception e) {
e.printStackTrace();
}
}
private String nombre;
private String descripcion;
private String activo;
///COMPONENES PARA LA ACTUALIZACION///
private UIInput inNombre;
private HtmlOutputText outNombre;
private UIInput inDescripcion;
private HtmlOutputText outDescripcion;
private HtmlSelectOneRadio inActivo;
private List<SelectItem> listaPerfil;
private List<Perfil> perfilesObjetos;
//Estilos para los mensajes de Error
private String style;
private String styleSuccess="COLOR: #008000;";
private String styleError="COLOR: #fc5868;";
private String msgAdd;
private String msgUp;
public List<SelectItem> getListaPerfil() {
listaPerfil = new ArrayList<SelectItem>();
List<Perfil> buscarPerfiles = ss.buscarPerfiles();
Collections.sort(buscarPerfiles, new ComparatorAdmin());
for(Perfil p : buscarPerfiles){
SelectItem item = new SelectItem(p.getNombre(),p.getNombre());
listaPerfil.add(item);
}
return listaPerfil;
}
public List<Perfil> getPerfilesObjetos() {
perfilesObjetos = new ArrayList<Perfil>();
perfilesObjetos = ss.buscarPerfiles();
Collections.sort(perfilesObjetos, new ComparatorAdmin());
return perfilesObjetos;
}
public void guardarPerfil(ActionEvent event){
Perfil p = new Perfil();
try{
if(nombre.trim().equals("") || descripcion.trim().equals("") || activo.trim().equals("")){
throw new Exception();
}else{
p.setNombre(nombre.trim());
p.setDescripcion(descripcion.trim());
p.setActivo(activo==null ? "SI": activo.trim());
ss.guardarPerfil(p);
setStyle(getStyleSuccess());
setMsgAdd("Perfil ingresado con xito");
setNombre("");
setDescripcion("");
setActivo("");
}
}catch(Exception e){
setStyle(getStyleError());
setMsgAdd("La operacin no fue completada");
}
}
public void actualizarPerfil(ActionEvent event){
Perfil p = new Perfil();
FacesContext fc = FacesContext.getCurrentInstance();
HttpServletRequest request = (HttpServletRequest) fc
.getExternalContext().getRequest();
String nomAplica = request
.getParameter("formActualizarPerfil:updatePerfil");
try{
p = ss.buscarPerfilPorNombre(nomAplica);
if(nombre.trim().equals("") || descripcion.trim().equals("") || activo.trim().equals("")){
throw new Exception();
}else{
p.setNombre(nombre.trim());
p.setDescripcion(descripcion.trim());
p.setActivo(activo.trim());
//p.setNombre((String)inNombre.getValue());
//p.setDescripcion((String)inDescripcion.getValue());
//p.setActivo((String)inActivo.getValue());
ss.actualizarPerfil(p);
setStyle(getStyleSuccess());
setMsgUp("Perfil actualizado con xito");
setNombre("");
outNombre.setValue("");
setDescripcion("");
outDescripcion.setValue("");
setActivo("");
}
}catch(Exception e){
setStyle(getStyleError());
setMsgUp("La operacin no fue completada");
}
}
public void cargarInfoPerfil(ValueChangeEvent event){
String nombrePerfil = (String)event.getNewValue();
if(nombrePerfil!=null){
Perfil p = ss.buscarPerfilPorNombre(nombrePerfil);
inNombre.setValue(p.getNombre());
outNombre.setValue("Actual: "+p.getNombre());
inDescripcion.setValue(p.getDescripcion());
outDescripcion.setValue("Actual: "+p.getDescripcion());
inActivo.setValue(p.getActivo());
}
}
public void cargarInicio(ActionEvent event){
setNombre("");
outNombre.setValue("");
setDescripcion("");
outDescripcion.setValue("");
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public String getDescripcion() {
return descripcion;
}
public void setDescripcion(String descripcion) {
this.descripcion = descripcion;
}
public String getActivo() {
return activo;
}
public void setActivo(String activo) {
this.activo = activo;
}
public UIInput getInNombre() {
return inNombre;
}
public void setInNombre(UIInput inNombre) {
this.inNombre = inNombre;
}
public HtmlOutputText getOutNombre() {
return outNombre;
}
public void setOutNombre(HtmlOutputText outNombre) {
this.outNombre = outNombre;
}
public UIInput getInDescripcion() {
return inDescripcion;
}
public void setInDescripcion(UIInput inDescripcion) {
this.inDescripcion = inDescripcion;
}
public HtmlOutputText getOutDescripcion() {
return outDescripcion;
}
public void setOutDescripcion(HtmlOutputText outDescripcion) {
this.outDescripcion = outDescripcion;
}
public HtmlSelectOneRadio getInActivo() {
return inActivo;
}
public void setInActivo(HtmlSelectOneRadio inActivo) {
this.inActivo = inActivo;
}
public void setListaPerfil(List<SelectItem> listaPerfil) {
this.listaPerfil = listaPerfil;
}
public void setPerfilesObjetos(List<Perfil> perfilesObjetos) {
this.perfilesObjetos = perfilesObjetos;
}
public void setStyle(String style) {
this.style = style;
}
public String getStyle() {
return style;
}
public void setStyleSuccess(String styleSuccess) {
this.styleSuccess = styleSuccess;
}
public String getStyleSuccess() {
return styleSuccess;
}
public void setStyleError(String styleError) {
this.styleError = styleError;
}
public String getStyleError() {
return styleError;
}
public void setMsgAdd(String msgAdd) {
this.msgAdd = msgAdd;
}
public String getMsgAdd() {
return msgAdd;
}
public void setMsgUp(String msgUp) {
this.msgUp = msgUp;
}
public String getMsgUp() {
return msgUp;
}
}
<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
<deployment>
<dependencies>
<module name="deployment.ServiciosSeguridadEPN.jar" />
<module name="javax.faces.api" />
</dependencies>
</deployment>
</jboss-deployment-structure>
\ No newline at end of file
package ec.edu.epn.seguridad.filtro;
import java.io.IOException;
import java.io.Serializable;
import java.util.Enumeration;
import java.util.Hashtable;
import javax.naming.InitialContext;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import ec.edu.epn.seguridad.VO.SesionUsuario;
import ec.edu.epn.seguridad.servicio.ServicioSeguridad;
public class FiltroAuditoria implements Filter, Serializable {
private static final long serialVersionUID = -657388017221155722L;
private FilterConfig filterConfig;
@SuppressWarnings("unused")
private ServicioSeguridad ss;
{
try {
InitialContext ctx = new InitialContext();
ss = (ServicioSeguridad) ctx
.lookup("java:global/ServiciosSeguridadEPN/ServicioSeguridadBean!ec.edu.epn.seguridad.servicio.ServicioSeguridad");
} catch (Exception e) {
e.printStackTrace();
}
}
@SuppressWarnings("unused")
public void doFilter(ServletRequest req, ServletResponse resp,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) resp;
HttpSession session = request.getSession();
Hashtable<String, String> urlNoControladas = new Hashtable<String, String>();
urlNoControladas.put("/seguridad/seleccionRol.jsf", "URL seteo roles");
urlNoControladas.put("/seguridad/cambioClave.jsf","URL cambio de clave");
urlNoControladas.put("/seguridad/noAutorizado.jsf", "URL no autorizado");
if (!urlNoControladas.containsKey(request.getServletPath())) {
SesionUsuario su = (SesionUsuario) session
.getAttribute("sesionUsuario");
Enumeration<String> nombreParametros = request.getParameterNames();
while (nombreParametros.hasMoreElements()) {
String nombreParametro = nombreParametros.nextElement();
if (!nombreParametro.equals("javax.faces.ViewState")) {
String valor = request.getParameter(nombreParametro);
if (valor.length() > 200) {
valor = valor.substring(0, 200);
}
}
} }
chain.doFilter(request, response);
}
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
}
public void destroy() {
}
public FilterConfig getFilterConfig() {
return filterConfig;
}
public void setFilterConfig(FilterConfig filterConfig) {
this.filterConfig = filterConfig;
}
}
<?xml version="1.0" encoding="WINDOWS-1252" standalone="no"?>
<jardesc>
<jar path="SeguridadWebEPN/dist/seguridadWebEPNDesarrollador.jar"/>
<options buildIfNeeded="true" compress="true" descriptionLocation="/SeguridadWebEPN/GeneraJarDesarrollador.jardesc" exportErrors="true" exportWarnings="true" includeDirectoryEntries="false" overwrite="false" saveDescription="true" storeRefactorings="false" useSourceFolders="false"/>
<storedRefactorings deprecationInfo="true" structuralOnly="false"/>
<selectedProjects/>
<manifest generateManifest="true" manifestLocation="" manifestVersion="1.0" reuseManifest="false" saveManifest="false" usesManifest="true">
<sealing sealJar="false">
<packagesToSeal/>
<packagesToUnSeal/>
</sealing>
</manifest>
<selectedElements exportClassFiles="true" exportJavaFiles="false" exportOutputFolder="false">
<file path="/SeguridadWebEPN/GeneraJar.jardesc"/>
<file path="/SeguridadWebEPN/.classpath"/>
<file path="/SeguridadWebEPN/.project"/>
<folder path="/SeguridadWebEPN/dist"/>
<javaElement handleIdentifier="=SeguridadWebEPN/src&lt;ec.edu.epn.seguridad.VO{SesionUsuarioMock.java"/>
<folder path="/SeguridadWebEPN/lib"/>
</selectedElements>
</jardesc>
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>SeguridadWebEPN-JSF2</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.wst.common.project.facet.core.builder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.jboss.tools.jst.web.kb.kbbuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.jboss.tools.cdi.core.cdibuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.wst.validation.validationbuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
<nature>org.jboss.tools.jst.web.kb.kbnature</nature>
<nature>org.jboss.tools.cdi.core.cdinature</nature>
</natures>
</projectDescription>
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jst.server.core.container/org.jboss.ide.eclipse.as.core.server.runtime.runtimeTarget/JBoss EAP 6.1+ Runtime"/>
<classpathentry combineaccessrules="false" kind="src" path="/ServiciosSeguridadEPN"/>
<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/Varios"/>
<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jre">
<attributes>
<attribute name="owner.project.facets" value="java"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="bin"/>
</classpath>
package ec.edu.epn.seguridad.VO;
import java.io.Serializable;
import ec.edu.epn.seguridad.vo.Menu;
public class MenuAccion implements Serializable, Comparable<MenuAccion> {
/**
*
*/
private static final long serialVersionUID = 4511109797669299668L;
private Menu menu;
public MenuAccion(Menu menu) {
this.menu = menu;
}
//Eclipse Generated hashCode and equals
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((menu == null) ? 0 : menu.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
MenuAccion other = (MenuAccion) obj;
if (menu == null) {
if (other.menu != null)
return false;
} else if (!menu.equals(other.menu))
return false;
return true;
}
public Menu getMenu() {
return menu;
}
public void setMenu(Menu menu) {
this.menu = menu;
}
@Override
public int compareTo(MenuAccion o) {
// TODO Auto-generated method stub
return 0;
}
}
\ No newline at end of file
#Fri May 27 10:34:07 COT 2011
eclipse.preferences.version=1
org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=warning
package ec.edu.epn.seguridad.VO;
import java.util.Comparator;
import ec.edu.epn.seguridad.vo.Aplicacion;
//import ec.edu.epn.seguridad.vo.Autorizacion;
import ec.edu.epn.seguridad.vo.Menu;
import ec.edu.epn.seguridad.vo.Perfil;
import ec.edu.epn.seguridad.vo.Personal;
import ec.edu.epn.seguridad.vo.Unidad;
import ec.edu.epn.seguridad.vo.Usuario;
public class ComparatorAdmin implements Comparator<Object> {
@Override
public int compare(Object o1, Object o2) {
if(o1.getClass().getName().equals("ec.edu.epn.seguridad.vo.Aplicacion")){
Aplicacion app1 = (Aplicacion) o1;
Aplicacion app2 = (Aplicacion) o2;
return app1.getNombre().compareToIgnoreCase(app2.getNombre());
}
if(o1.getClass().getName().equals("ec.edu.epn.seguridad.vo.Perfil")){
Perfil perf1 = (Perfil) o1;
Perfil perf2 = (Perfil) o2;
return perf1.getNombre().compareToIgnoreCase(perf2.getNombre());
}
if(o1.getClass().getName().equals("ec.edu.epn.seguridad.vo.Menu")){
Menu menu1 = (Menu) o1;
Menu menu2 = (Menu) o2;
return menu1.getNombre().compareToIgnoreCase(menu2.getNombre());
}
if(o1.getClass().getName().equals("ec.edu.epn.seguridad.vo.Personal")){
Personal pers1 = (Personal) o1;
Personal pers2 = (Personal) o2;
return pers1.getNombresPe().compareToIgnoreCase(pers2.getNombresPe());
}
if(o1.getClass().getName().equals("ec.edu.epn.seguridad.vo.Unidad")){
Unidad uni1 = (Unidad) o1;
Unidad uni2 = (Unidad) o2;
return uni1.getNombreU().compareToIgnoreCase(uni2.getNombreU());
}
if(o1.getClass().getName().equals("ec.edu.epn.seguridad.vo.Usuario")){
Usuario user1 = (Usuario) o1;
Usuario user2 = (Usuario) o2;
return user1.getNombreUsuario().compareToIgnoreCase(user2.getNombreUsuario());
}
return 0;
}
}
<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
<wb-module deploy-name="SeguridadWebEPN-JSF2">
<wb-resource deploy-path="/" source-path="/src"/>
</wb-module>
</project-modules>
package ec.edu.epn.seguridad.filtro;
import java.io.IOException;
import java.io.Serializable;
import java.util.Hashtable;
import java.util.Map;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import javax.faces.application.ResourceHandler;
import ec.edu.epn.seguridad.VO.SesionUsuario;
public class FiltroAutorizacion implements Filter, Serializable {
/**
*
*/
private static final long serialVersionUID = -4266992020481797282L;
/**
*
*/
private FilterConfig filterConfig;
public void doFilter(ServletRequest req, ServletResponse resp,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) resp;
HttpSession session = request.getSession();
Hashtable<String,String> urlNoControladas = new Hashtable<String,String>();
urlNoControladas.put("/seguridad/seleccionRol.jsf", "URL seteo roles");
urlNoControladas.put("/seguridad/cambioClave.jsf", "URL cambio de clave");
urlNoControladas.put("/seguridad/noAutorizado.jsf", "URL no autorizado");
urlNoControladas.put("/seguridad/cerrarSesion", "URL cierre sesion");
String uri = ((HttpServletRequest) request).getRequestURI();
if (urlNoControladas.containsKey(request.getServletPath())){
chain.doFilter(request,response);
}else{
SesionUsuario su = (SesionUsuario) session.getAttribute("sesionUsuario");
Map<String,String> opciones = su.getOpciones();
if(opciones!=null && opciones.containsKey(request.getServletPath())){
String accesos = opciones.get(request.getServletPath());
request.setAttribute(SesionUsuario.NOMBRE_VARIABLE_ACCESOS,accesos);
chain.doFilter(request,response);
}else if(uri.startsWith(request.getContextPath() + ResourceHandler.RESOURCE_IDENTIFIER) || uri.startsWith(request.getContextPath())){
chain.doFilter(request, response);
}else{
RequestDispatcher rd = request.getRequestDispatcher("/seguridad/noAutorizado.jsf");
rd.forward(request,response);
}
}
}
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig=filterConfig;
}
public void destroy() {
}
public FilterConfig getFilterConfig() {
return filterConfig;
}
}
<?xml version="1.0" encoding="WINDOWS-1252" standalone="no"?>
<jardesc>
<jar path="C:/Documents and Settings/SauloV/Escritorio/seguridadWebEPN.jar"/>
<options buildIfNeeded="true" compress="true" descriptionLocation="/SeguridadWebEPN-JSF2/GeneraJar.jardesc" exportErrors="true" exportWarnings="true" includeDirectoryEntries="false" overwrite="false" saveDescription="true" storeRefactorings="false" useSourceFolders="false"/>
<storedRefactorings deprecationInfo="true" structuralOnly="false"/>
<selectedProjects/>
<manifest generateManifest="true" manifestLocation="" manifestVersion="1.0" reuseManifest="false" saveManifest="false" usesManifest="true">
<sealing sealJar="false">
<packagesToSeal/>
<packagesToUnSeal/>
</sealing>
</manifest>
<selectedElements exportClassFiles="false" exportJavaFiles="false" exportOutputFolder="true">
<javaElement handleIdentifier="=SeguridadWebEPN-JSF2/src"/>
</selectedElements>
</jardesc>
package ec.edu.epn.seguridad.VO;
import java.io.Serializable;
import java.util.Date;
import ec.edu.epn.seguridad.vo.Personal;
import ec.edu.epn.seguridad.vo.Unidad;
public class UsuarioTemp implements Serializable{
/**
*
*/
private static final long serialVersionUID = 5222814270136240276L;
private long id;
private String nombreUsuario;
private String clave;
private String cedula;
private Date fechaCreacion;
private Personal personal;
private Unidad unidad;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getNombreUsuario() {
return nombreUsuario;
}
public void setNombreUsuario(String nombreUsuario) {
this.nombreUsuario = nombreUsuario;
}
public String getClave() {
return clave;
}
public void setClave(String clave) {
this.clave = clave;
}
public String getCedula() {
return cedula;
}
public void setCedula(String cedula) {
this.cedula = cedula;
}
public Date getFechaCreacion() {
return fechaCreacion;
}
public void setFechaCreacion(Date fechaCreacion) {
this.fechaCreacion = fechaCreacion;
}
public Personal getPersonal() {
return personal;
}
public void setPersonal(Personal personal) {
this.personal = personal;
}
public Unidad getUnidad() {
return unidad;
}
public void setUnidad(Unidad unidad) {
this.unidad = unidad;
}
}
File added
<?xml version="1.0" encoding="WINDOWS-1252" standalone="no"?>
<jardesc>
<jar path="C:/Documents and Settings/SauloV/Escritorio/seguridadWebEPN.jar"/>
<options buildIfNeeded="true" compress="true" descriptionLocation="/SeguridadWebEPN-JSF2/GeneraJar.jardesc" exportErrors="true" exportWarnings="true" includeDirectoryEntries="false" overwrite="false" saveDescription="true" storeRefactorings="false" useSourceFolders="false"/>
<storedRefactorings deprecationInfo="true" structuralOnly="false"/>
<selectedProjects/>
<manifest generateManifest="true" manifestLocation="" manifestVersion="1.0" reuseManifest="false" saveManifest="false" usesManifest="true">
<sealing sealJar="false">
<packagesToSeal/>
<packagesToUnSeal/>
</sealing>
</manifest>
<selectedElements exportClassFiles="false" exportJavaFiles="false" exportOutputFolder="true">
<javaElement handleIdentifier="=SeguridadWebEPN-JSF2/src"/>
</selectedElements>
</jardesc>
<?xml version="1.0" encoding="WINDOWS-1252" standalone="no"?>
<jardesc>
<jar path="SeguridadWebEPN/dist/seguridadWebEPNDesarrollador.jar"/>
<options buildIfNeeded="true" compress="true" descriptionLocation="/SeguridadWebEPN/GeneraJarDesarrollador.jardesc" exportErrors="true" exportWarnings="true" includeDirectoryEntries="false" overwrite="false" saveDescription="true" storeRefactorings="false" useSourceFolders="false"/>
<storedRefactorings deprecationInfo="true" structuralOnly="false"/>
<selectedProjects/>
<manifest generateManifest="true" manifestLocation="" manifestVersion="1.0" reuseManifest="false" saveManifest="false" usesManifest="true">
<sealing sealJar="false">
<packagesToSeal/>
<packagesToUnSeal/>
</sealing>
</manifest>
<selectedElements exportClassFiles="true" exportJavaFiles="false" exportOutputFolder="false">
<file path="/SeguridadWebEPN/GeneraJar.jardesc"/>
<file path="/SeguridadWebEPN/.classpath"/>
<file path="/SeguridadWebEPN/.project"/>
<folder path="/SeguridadWebEPN/dist"/>
<javaElement handleIdentifier="=SeguridadWebEPN/src&lt;ec.edu.epn.seguridad.VO{SesionUsuarioMock.java"/>
<folder path="/SeguridadWebEPN/lib"/>
</selectedElements>
</jardesc>
Manifest-Version: 1.0
Class-Path:
<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
<deployment>
<dependencies>
<module name="deployment.ServiciosSeguridadEPN.jar" />
<module name="javax.faces.api" />
</dependencies>
</deployment>
</jboss-deployment-structure>
\ No newline at end of file
Manifest-Version: 1.0
Class-Path:
package ec.edu.epn.seguridad.VO;
import java.io.Serializable;
import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.validator.ValidatorException;
import javax.naming.InitialContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import ec.edu.epn.seguridad.servicio.ServicioSeguridad;
public class CambioClave implements Serializable{
private static final long serialVersionUID = 5313859176084820300L;
private String claveAnterior;
private String claveNueva;
private String claveNueva2;
private ServicioSeguridad ss;
{
try {
InitialContext ctx = new InitialContext();
ss = (ServicioSeguridad) ctx.lookup("java:global/ServiciosSeguridadEPN/ServicioSeguridadBean!ec.edu.epn.seguridad.servicio.ServicioSeguridad");
} catch(Exception e) {
e.printStackTrace();
}
}
public String getClaveAnterior() {
return claveAnterior;
}
public void setClaveAnterior(String claveAnterior) {
this.claveAnterior = claveAnterior;
}
public String getClaveNueva() {
return claveNueva;
}
public void setClaveNueva(String claveNueva) {
this.claveNueva = claveNueva;
}
public String getClaveNueva2() {
return claveNueva2;
}
public void setClaveNueva2(String claveNueva2) {
this.claveNueva2 = claveNueva2;
}
public void validaClaveAnterior(FacesContext fc, UIComponent component, Object valor) throws ValidatorException {
HttpServletRequest request = (HttpServletRequest) fc.getExternalContext().getRequest();
HttpSession session = request.getSession();
SesionUsuario su= (SesionUsuario)session.getAttribute("sesionUsuario");
if (!ss.validarUsuarioPassword(su.getUsuario().getNombreUsuario(), (String)valor)) {
FacesMessage e = new FacesMessage();
e.setSeverity(FacesMessage.SEVERITY_ERROR);
e.setSummary("Clave anterior incorrecta");
throw new ValidatorException(e);
}
}
public void validaClave2(FacesContext fc, UIComponent component, Object valor) throws ValidatorException {
HttpServletRequest request = (HttpServletRequest)fc.getExternalContext().getRequest();
String claveNueva = request.getParameter("formCambio:claveNueva");
if (claveNueva==null || !claveNueva.equals((String)valor)) {
FacesMessage e = new FacesMessage();
e.setSeverity(FacesMessage.SEVERITY_ERROR);
e.setSummary("La clave y la confirmacin no coinciden");
throw new ValidatorException(e);
}
}
public String cambiarClave(){
FacesContext fc = FacesContext.getCurrentInstance();
HttpServletRequest request = (HttpServletRequest) fc.getExternalContext().getRequest();
HttpSession session = request.getSession();
SesionUsuario su= (SesionUsuario)session.getAttribute("sesionUsuario");
ss.actualizarPassword(su.getUsuario().getNombreUsuario(), getClaveNueva());
return "principal";
}
}
package ec.edu.epn.seguridad.VO;
import java.util.Comparator;
import ec.edu.epn.seguridad.vo.Aplicacion;
//import ec.edu.epn.seguridad.vo.Autorizacion;
import ec.edu.epn.seguridad.vo.Menu;
import ec.edu.epn.seguridad.vo.Perfil;
import ec.edu.epn.seguridad.vo.Personal;
import ec.edu.epn.seguridad.vo.Unidad;
import ec.edu.epn.seguridad.vo.Usuario;
public class ComparatorAdmin implements Comparator<Object> {
@Override
public int compare(Object o1, Object o2) {
if(o1.getClass().getName().equals("ec.edu.epn.seguridad.vo.Aplicacion")){
Aplicacion app1 = (Aplicacion) o1;
Aplicacion app2 = (Aplicacion) o2;
return app1.getNombre().compareToIgnoreCase(app2.getNombre());
}
if(o1.getClass().getName().equals("ec.edu.epn.seguridad.vo.Perfil")){
Perfil perf1 = (Perfil) o1;
Perfil perf2 = (Perfil) o2;
return perf1.getNombre().compareToIgnoreCase(perf2.getNombre());
}
if(o1.getClass().getName().equals("ec.edu.epn.seguridad.vo.Menu")){
Menu menu1 = (Menu) o1;
Menu menu2 = (Menu) o2;
return menu1.getNombre().compareToIgnoreCase(menu2.getNombre());
}
if(o1.getClass().getName().equals("ec.edu.epn.seguridad.vo.Personal")){
Personal pers1 = (Personal) o1;
Personal pers2 = (Personal) o2;
return pers1.getNombresPe().compareToIgnoreCase(pers2.getNombresPe());
}
if(o1.getClass().getName().equals("ec.edu.epn.seguridad.vo.Unidad")){
Unidad uni1 = (Unidad) o1;
Unidad uni2 = (Unidad) o2;
return uni1.getNombreU().compareToIgnoreCase(uni2.getNombreU());
}
if(o1.getClass().getName().equals("ec.edu.epn.seguridad.vo.Usuario")){
Usuario user1 = (Usuario) o1;
Usuario user2 = (Usuario) o2;
return user1.getNombreUsuario().compareToIgnoreCase(user2.getNombreUsuario());
}
return 0;
}
}
package ec.edu.epn.seguridad.VO;
import java.io.Serializable;
import java.util.Collections;
import java.util.List;
import java.util.ArrayList;
import javax.faces.component.UIInput;
import javax.faces.event.ActionEvent;
import javax.faces.event.ValueChangeEvent;
import javax.faces.model.SelectItem;
import javax.faces.component.html.HtmlOutputText;
import javax.faces.component.html.HtmlSelectOneListbox;
import javax.faces.component.html.HtmlSelectOneRadio;
import javax.naming.InitialContext;
import ec.edu.epn.seguridad.servicio.ServicioSeguridad;
import ec.edu.epn.seguridad.vo.Aplicacion;
public class GestionAplicaciones implements Serializable {
private static final long serialVersionUID = 9099065821772808727L;
private ServicioSeguridad ss;
{
try {
InitialContext ctx = new InitialContext();
ss = (ServicioSeguridad) ctx.lookup("java:global/ServiciosSeguridadEPN/ServicioSeguridadBean!ec.edu.epn.seguridad.servicio.ServicioSeguridad");
} catch(Exception e) {
e.printStackTrace();
}
}
private String nombre;
private String descripcion;
private String activo;
private String url;
private List<Aplicacion> listaAplicaciones;
private List<SelectItem> listaItems;
//Estilos para los mensajes de Error
private String style;
private String styleSuccess="COLOR: #008000;";
private String styleError="COLOR: #fc5868;";
private String msgAdd;
private String msgUp;
//Componentes para cambiar dinmicamente h:inputText
private UIInput nombreIN;
private UIInput descripcionIN;
private UIInput urlIN;
private HtmlSelectOneRadio selectDefaultValue;
//Componentes para cambiar dinmicamente h:outputText
private HtmlOutputText nombreOut;
private HtmlOutputText descripcionOut;
private HtmlOutputText urlOut;
//Seleccin de la aplicacion a modificar
private Long aplicacionSeleccionadaID;
private HtmlSelectOneListbox aplicacionListBox;
public HtmlOutputText getNombreOut() {
return nombreOut;
}
public void setNombreOut(HtmlOutputText nombreOut) {
this.nombreOut = nombreOut;
}
public HtmlOutputText getDescripcionOut() {
return descripcionOut;
}
public void setDescripcionOut(HtmlOutputText descripcionOut) {
this.descripcionOut = descripcionOut;
}
public HtmlOutputText getUrlOut() {
return urlOut;
}
public void setUrlOut(HtmlOutputText urlOut) {
this.urlOut = urlOut;
}
public Long getAplicacionSeleccionadaID() {
return aplicacionSeleccionadaID;
}
public void setAplicacionSeleccionadaID(Long aplicacionSeleccionadaID) {
this.aplicacionSeleccionadaID = aplicacionSeleccionadaID;
}
public List<SelectItem> getListaItems(){
listaAplicaciones = new ArrayList<Aplicacion>();
getListaAplicaciones();
Collections.sort(listaAplicaciones, new ComparatorAdmin());
listaItems = new ArrayList<SelectItem>();
for(Aplicacion app : listaAplicaciones){
listaItems.add(new SelectItem(app.getId(), app.getNombre(), app.getDescripcion()));
}
return listaItems;
}
public List<Aplicacion> getListaAplicaciones() {
listaAplicaciones = ss.consultarAplicaciones();
Collections.sort(listaAplicaciones, new ComparatorAdmin());
return listaAplicaciones;
}
public void setListaAplicaciones(List<Aplicacion> listaAplicaciones) {
this.listaAplicaciones = listaAplicaciones;
}
public void setListaItems(List<SelectItem> listaItems) {
this.listaItems = listaItems;
}
public UIInput getNombreIN() {
return nombreIN;
}
public void setNombreIN(UIInput nombreIN) {
this.nombreIN = nombreIN;
}
public UIInput getDescripcionIN() {
return descripcionIN;
}
public void setDescripcionIN(UIInput descripcionIN) {
this.descripcionIN = descripcionIN;
}
public UIInput getUrlIN() {
return urlIN;
}
public void setUrlIN(UIInput urlIN) {
this.urlIN = urlIN;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public String getDescripcion() {
return descripcion;
}
public void setDescripcion(String descripcion) {
this.descripcion = descripcion;
}
public String getActivo() {
return activo;
}
public void setActivo(String activo) {
this.activo = activo;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public HtmlSelectOneRadio getSelectDefaultValue() {
return selectDefaultValue;
}
public void setSelectDefaultValue(HtmlSelectOneRadio selectDefaultValue) {
this.selectDefaultValue = selectDefaultValue;
}
public HtmlSelectOneListbox getAplicacionListBox() {
return aplicacionListBox;
}
public void setAplicacionListBox(HtmlSelectOneListbox aplicacionListBox) {
this.aplicacionListBox = aplicacionListBox;
}
public void addAplicacion(ActionEvent event){
Aplicacion app = new Aplicacion();
try{
if(nombre.trim().equals("") || descripcion.trim().equals("") || activo.trim().equals("") || url.trim().equals("")){
throw new Exception();
}else{
app.setNombre(nombre.trim());
app.setDescripcion(descripcion.trim());
app.setActivo(activo.trim());
app.setUrl(url.trim());
ss.guardarAplicacion(app);
setStyle(getStyleSuccess());
setMsgAdd("Aplicacin ingresada con xito");
setNombre("");
setDescripcion("");
setActivo("");
setUrl("");
}
}catch(Exception e){
setStyle(getStyleError());
setMsgAdd("La operacin no fue completada");
}
}
public void updateAplicacion(ActionEvent event){
String appSeleccionada = (String)aplicacionListBox.getValue();
setAplicacionSeleccionadaID(Long.parseLong(appSeleccionada!=null ? appSeleccionada : "-1"));
try{
Aplicacion app = searchAplicacion(aplicacionSeleccionadaID);
if(nombre.trim().equals("") || descripcion.trim().equals("") || activo.trim().equals("") || url.trim().equals("")){
throw new Exception();
}else{
app.setNombre(nombre.trim());
app.setDescripcion(descripcion.trim());
app.setActivo(activo.trim());
app.setUrl(url.trim());
ss.actualizarAplicacion(app);
setStyle(getStyleSuccess());
setMsgUp("Aplicacin modificada con xito");
setNombre("");
nombreOut.setValue("");
setDescripcion("");
descripcionOut.setValue("");
setActivo("");
setUrl("");
urlOut.setValue("");
}
}catch(Exception e){
setStyle(getStyleError());
setMsgUp("La operacin no fue completada");
}
}
public void cargarInfoAplicacion(ValueChangeEvent event){
setAplicacionSeleccionadaID(Long.parseLong((String)event.getNewValue()));
Aplicacion a = searchAplicacion(aplicacionSeleccionadaID);
nombreOut.setValue("Actual: "+a.getNombre());
descripcionOut.setValue("Actual: "+a.getDescripcion());
urlOut.setValue("Actual: "+a.getUrl());
nombreIN.setValue(a.getNombre());
descripcionIN.setValue(a.getDescripcion());
urlIN.setValue(a.getUrl());
selectDefaultValue.setValue(a.getActivo());
}
public Aplicacion searchAplicacion(Long id){
for(Aplicacion a : listaAplicaciones ){
if(a.getId()==id.longValue()){
return a;
}
}
return null;
}
public void cargarInicio(ActionEvent event){
nombreIN.setValue(" ");
descripcionIN.setValue(" ");
urlIN.setValue(" ");
selectDefaultValue.setValue(" ");
nombreOut.setValue(" ");
descripcionOut.setValue(" ");
urlOut.setValue(" ");
}
public void limpiarComponentes(ActionEvent event){
setNombre(" ");
setUrl(" ");
setDescripcion(" ");
setActivo(" ");
}
public void setStyleSuccess(String styleSuccess) {
this.styleSuccess = styleSuccess;
}
public String getStyleSuccess() {
return styleSuccess;
}
public void setStyleError(String styleError) {
this.styleError = styleError;
}
public String getStyleError() {
return styleError;
}
public void setStyle(String style) {
this.style = style;
}
public String getStyle() {
return style;
}
public void setMsgAdd(String msgAdd) {
this.msgAdd = msgAdd;
}
public String getMsgAdd() {
return msgAdd;
}
public void setMsgUp(String msgUp) {
this.msgUp = msgUp;
}
public String getMsgUp() {
return msgUp;
}
}
package ec.edu.epn.seguridad.VO;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
//import javax.ejb.EJB;
import javax.faces.component.UIParameter;
import javax.faces.component.html.HtmlInputHidden;
import javax.faces.component.html.HtmlSelectManyCheckbox;
import javax.faces.event.ActionEvent;
import javax.naming.InitialContext;
import ec.edu.epn.seguridad.servicio.ServicioSeguridad;
import ec.edu.epn.seguridad.vo.Autorizacion;
import ec.edu.epn.seguridad.vo.Menu;
import ec.edu.epn.seguridad.vo.Perfil;
public class GestionAutorizacion implements Serializable{
private static final long serialVersionUID = 1735849069486849238L;
private ServicioSeguridad ss;
{
try {
InitialContext ctx = new InitialContext();
ss = (ServicioSeguridad) ctx.lookup("java:global/ServiciosSeguridadEPN/ServicioSeguridadBean!ec.edu.epn.seguridad.servicio.ServicioSeguridad");
} catch(Exception e) {
e.printStackTrace();
}
}
///Ingreso de Autorizaciones
private String perfilIn;
private String perfilIDIn;
private String menuIn;
private String menuIDIn;
private List<String> permisosIn;
private List<Menu> menus;
///Modificacion de Autorizaciones
private List<Autorizacion> autorizaciones;
private String autorizacionIDIn;
private String autorizacionIDOut;
private String permisosString;
private HtmlSelectManyCheckbox permisosCheckbox;
//Estilos para los mensajes de Error
private String style;
private String styleSuccess="COLOR: #008000;";
private String styleError="COLOR: #fc5868;";
private String msgAdd;
private String msgUp;
public void guardarAutorizacion(ActionEvent event){
HtmlInputHidden idPerfil = (HtmlInputHidden) event.getComponent().findComponent("idPerfilIn");
Long auxIdPerfil = Long.parseLong(idPerfil.getValue().toString());
HtmlInputHidden idMenu = (HtmlInputHidden) event.getComponent().findComponent("idMenuIn");
Long auxIdMenu = Long.parseLong(idMenu.getValue().toString());
String permisos = "";
for(String per : permisosIn){
permisos = permisos + per + " ";;
}
Perfil p = new Perfil();
try{
if(perfilIDIn.trim().equals("") || menuIDIn.trim().equals("")){
throw new Exception();
}else{
p = ss.buscarPerfilPorID(auxIdPerfil);
Menu m = new Menu();
m = ss.obtenerMenuPorID(auxIdMenu);
Autorizacion autorizacion = new Autorizacion();
long id = ss.selectMaxIDAutorizacion()+1L;
autorizacion.setId(id);
autorizacion.setPerfil(p);
autorizacion.setMenu(m);
autorizacion.setPermisos(permisos.trim().equals("") ? null : permisos.trim());
ss.guardarAutorizacion(autorizacion);
setStyle(getStyleSuccess());
setMsgAdd("Autorizacin ingresada con xito");
setPerfilIDIn("");
setMenuIDIn("");
List<String> permisosTemp = new ArrayList<String>();
for(int i=0; i<4; i++ ){
permisosTemp.add("");
}
setPermisosIn(permisosTemp);
}
}catch(Exception e){
e.printStackTrace();
setStyle(getStyleError());
setMsgAdd("La operacin no fue completada");
}
}
public void actualizarAutorizacion(ActionEvent event){
HtmlInputHidden idAutorizacion = (HtmlInputHidden) event.getComponent().findComponent("idAutorizacionIn");
Long auxIdAutorizacion = Long.parseLong(idAutorizacion.getValue().toString());
HtmlInputHidden idPerfil = (HtmlInputHidden) event.getComponent().findComponent("idPerfilUpdate");
Long auxIdPerfil = Long.parseLong(idPerfil.getValue().toString());
HtmlInputHidden idMenu = (HtmlInputHidden) event.getComponent().findComponent("idMenuUpdate");
Long auxIdMenu = Long.parseLong(idMenu.getValue().toString());
String permisos = "";
for(String per : permisosIn){
permisos = permisos + per + " ";;
}
try{
Perfil p = new Perfil();
p = ss.buscarPerfilPorID(auxIdPerfil);
Menu m = new Menu();
m = ss.obtenerMenuPorID(auxIdMenu);
Autorizacion autorizacion = new Autorizacion();
autorizacion = ss.buscarAutorizacionPorID(auxIdAutorizacion);
autorizacion.setPerfil(p);
autorizacion.setMenu(m);
autorizacion.setPermisos(permisos);
ss.actualizarAutorizacion(autorizacion);
List<String> permisosList = new ArrayList<String>();
for(int i=0; i<4; i++){
permisosList.add(i, "");
}
setPermisosIn(permisosList);
permisosCheckbox.setValue(permisos);
setStyle(getStyleSuccess());
setMsgUp("Autorizacin modificada con xito");
}catch(Exception e){
e.printStackTrace();
setStyle(getStyleError());
setMsgAdd("La operacin no fue completada");
}
}
public void seleccionarPerfil(ActionEvent event){
UIParameter componentNombre = (UIParameter) event.getComponent().findComponent("nombPerfil");
String auxNombPerfil = componentNombre.getValue().toString();
UIParameter componentID = (UIParameter) event.getComponent().findComponent("idPerfil");
String auxIdPerfil = componentID.getValue().toString();
setPerfilIn(auxNombPerfil);
setPerfilIDIn(auxIdPerfil);
}
public void seleccionarMenu(ActionEvent event){
UIParameter componentNombre = (UIParameter) event.getComponent().findComponent("nombMenu");
String auxNombMenu = componentNombre.getValue().toString();
UIParameter componentID = (UIParameter) event.getComponent().findComponent("idMenu");
String auxIdMenu = componentID.getValue().toString();
setMenuIn(auxNombMenu);
setMenuIDIn(auxIdMenu);
}
public void seleccionarAutorizacion(ActionEvent event){
UIParameter componentAutoNombre = (UIParameter) event.getComponent().findComponent("idAutorizacion");
String auxIdAutorizacion = componentAutoNombre.getValue().toString();
setAutorizacionIDIn(auxIdAutorizacion);
setAutorizacionIDOut(auxIdAutorizacion);
UIParameter componentPerfilNombre = (UIParameter) event.getComponent().findComponent("nombPerfilUpdate");
String auxNombPerfil = componentPerfilNombre.getValue().toString();
UIParameter componentPerfilID = (UIParameter) event.getComponent().findComponent("idPerfilSelectUpdate");
String auxIdPerfil = componentPerfilID.getValue().toString();
setPerfilIn(auxNombPerfil);
setPerfilIDIn(auxIdPerfil);
UIParameter componentMenuNombre = (UIParameter) event.getComponent().findComponent("nombMenuUpdate");
String auxNombMenu = componentMenuNombre.getValue().toString();
UIParameter componentMenuID = (UIParameter) event.getComponent().findComponent("idMenuSelectUpdate");
String auxIdMenu = componentMenuID.getValue().toString();
setMenuIn(auxNombMenu);
setMenuIDIn(auxIdMenu);
UIParameter componentPermisos = (UIParameter) event.getComponent().findComponent("permUpdate");
String auxPermisos = componentPermisos.getValue().toString();
setPermisosString(auxPermisos);
List<String> permisos = new ArrayList<String>();
String[] permisosArray = permisosString.split("[ ]");
for(int i=0; i<permisosArray.length; i++){
permisos.add(i, permisosArray[i]);
}
setPermisosIn(permisos);
permisosCheckbox.setValue(permisos);
}
public List<Menu> getMenus() {
menus = new ArrayList<Menu>();
menus = ss.getListaMenus();
Collections.sort(menus, new ComparatorAdmin());
return menus;
}
public List<Autorizacion> getAutorizaciones() {
autorizaciones = new ArrayList<Autorizacion>();
autorizaciones = ss.getListaAutorizaciones();
return autorizaciones;
}
public void setMenus(List<Menu> menus) {
this.menus = menus;
}
public String getPerfilIDIn() {
return perfilIDIn;
}
public void setPerfilIDIn(String perfilIDIn) {
this.perfilIDIn = perfilIDIn;
}
public String getMenuIDIn() {
return menuIDIn;
}
public void setMenuIDIn(String menuIDIn) {
this.menuIDIn = menuIDIn;
}
public String getPerfilIn() {
return perfilIn;
}
public void setPerfilIn(String perfilIn) {
this.perfilIn = perfilIn;
}
public String getMenuIn() {
return menuIn;
}
public void setMenuIn(String menuIn) {
this.menuIn = menuIn;
}
public List<String> getPermisosIn() {
return permisosIn;
}
public void setPermisosIn(List<String> permisosIn) {
this.permisosIn = permisosIn;
}
public void setAutorizacionIDIn(String autorizacionIDIn) {
this.autorizacionIDIn = autorizacionIDIn;
}
public String getAutorizacionIDIn() {
return autorizacionIDIn;
}
public void setAutorizacionIDOut(String autorizacionIDOut) {
this.autorizacionIDOut = autorizacionIDOut;
}
public String getAutorizacionIDOut() {
return autorizacionIDOut;
}
public void setPermisosString(String permisosString) {
this.permisosString = permisosString;
}
public String getPermisosString() {
return permisosString;
}
public void setAutorizaciones(List<Autorizacion> autorizaciones) {
this.autorizaciones = autorizaciones;
}
public void setStyle(String style) {
this.style = style;
}
public String getStyle() {
return style;
}
public void setStyleSuccess(String styleSuccess) {
this.styleSuccess = styleSuccess;
}
public String getStyleSuccess() {
return styleSuccess;
}
public void setStyleError(String styleError) {
this.styleError = styleError;
}
public String getStyleError() {
return styleError;
}
public void setMsgAdd(String msgAdd) {
this.msgAdd = msgAdd;
}
public String getMsgAdd() {
return msgAdd;
}
public void setMsgUp(String msgUp) {
this.msgUp = msgUp;
}
public String getMsgUp() {
return msgUp;
}
public void setPermisosCheckbox(HtmlSelectManyCheckbox permisosCheckbox) {
this.permisosCheckbox = permisosCheckbox;
}
public HtmlSelectManyCheckbox getPermisosCheckbox() {
return permisosCheckbox;
}
}
package ec.edu.epn.seguridad.VO;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.component.UIInput;
import javax.faces.component.html.HtmlInputText;
import javax.faces.component.html.HtmlOutputText;
import javax.faces.component.html.HtmlSelectOneListbox;
import javax.faces.component.html.HtmlSelectOneRadio;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import javax.faces.event.ValueChangeEvent;
import javax.faces.model.SelectItem;
import javax.naming.InitialContext;
import javax.servlet.http.HttpServletRequest;
import ec.edu.epn.seguridad.servicio.ServicioSeguridad;
import ec.edu.epn.seguridad.vo.Aplicacion;
import ec.edu.epn.seguridad.vo.Menu;
public class GestionMenus implements Serializable{
private static final long serialVersionUID = 1979325576485954289L;
private ServicioSeguridad ss;
{
try {
InitialContext ctx = new InitialContext();
ss = (ServicioSeguridad) ctx.lookup("java:global/ServiciosSeguridadEPN/ServicioSeguridadBean!ec.edu.epn.seguridad.servicio.ServicioSeguridad");
} catch(Exception e) {
e.printStackTrace();
}
}
private String nomAplicacion;
private List<SelectItem> opcionesActivo = new ArrayList<SelectItem>();
private List<SelectItem> menusPorAplicacion;
///Valores a usar para el ingreso de informacin
private String nombre;
private String descripcion;
private String url;
private String activo;
private String tipo;
///Componentes para el ingreso de informacin
private HtmlSelectOneListbox tipoMenu;
private HtmlSelectOneListbox carpetaPadre;
private HtmlSelectOneListbox comboBoxAplicacion;
///Componentes para la actualizacion o modificacion de mens y opciones
///Escoger el men a modificar
private HtmlSelectOneListbox comboAplicaUpdate;
private HtmlSelectOneListbox menuPadreUpdate;
private HtmlSelectOneListbox opcionUpdate;
private List<SelectItem> opcionesPorMenu;
private List<SelectItem> listaOrdenMenuPadre;
private List<SelectItem> listaOrdenPorMenu;
///En esta lista se cargar el orden del Menu u Opciones
///dependiendo de si se selecciona uno u otro con el radio
private List<SelectItem> listaOrden;
private String tipoMenuString;
private HtmlSelectOneRadio tipoMenuIn;
///Modificar los campos de manera automtica
private HtmlSelectOneListbox aplicacionUpdateIn;
private HtmlOutputText aplicacionActualOut;
private HtmlSelectOneListbox menuPadreUpdateIn;
private String menuPadreNombre;
private HtmlOutputText menuPadreActualOut;
private String nombreMenu;
private UIInput nombreMenuIn;
private HtmlOutputText nombreMenuOut;
private String descripcionMenu;
private UIInput descripcionMenuIn;
private HtmlOutputText descripcionMenuOut;
private String urlMenu;
private UIInput urlMenuIn;
private HtmlOutputText urlMenuOut;
private HtmlSelectOneListbox ordenMenuIn;
private HtmlOutputText ordenMenuOut;
private String estadoMenu;
private HtmlSelectOneRadio estadoMenuIn;
///Badera para saber que Componente esta haciendo el cambio
private String componente;
///Lista de Mens
private List<Menu> listaMenusObjetos;
//Estilos para los mensajes de Error
private String style;
private String styleSuccess="COLOR: #008000;";
private String styleError="COLOR: #fc5868;";
private String msgAdd;
private String msgUp;
public List<SelectItem> getMenusPorAplicacionIngreso(){
if((String)comboBoxAplicacion.getValue()!=null ){
nomAplicacion = (String)comboBoxAplicacion.getValue();
}
return getMenusPorAplicacion();
}
public List<SelectItem> getMenusPorAplicacionSeleccion(){
if((String)comboAplicaUpdate.getValue()!=null ){
nomAplicacion = (String)comboAplicaUpdate.getValue();
}
return getMenusPorAplicacion();
}
public List<SelectItem> getMenusPorAplicacionUpdate(){
if((String)aplicacionUpdateIn.getValue()!=null ){
nomAplicacion = (String)aplicacionUpdateIn.getValue();
}
List<SelectItem> temp = getMenusPorAplicacion();
temp.add(new SelectItem(" ","Ninguno"));
return temp;
}
public List<SelectItem> getMenusPorAplicacion() {
menusPorAplicacion = new ArrayList<SelectItem>();
if (nomAplicacion == null) {
SelectItem i = new SelectItem();
i.setValue("");
i.setDescription("");
i.setLabel("");
menusPorAplicacion.add(i);
} else {
List<Menu> resultadoBusqueda = ss
.consultarMenusPorAplicacion(nomAplicacion);
Collections.sort(resultadoBusqueda, new ComparatorAdmin());
if (resultadoBusqueda != null) {
for (Menu m : resultadoBusqueda) {
SelectItem i = new SelectItem();
i.setValue(m.getId());
i.setLabel(m.getNombre());
i.setDescription(m.getDescripcion());
menusPorAplicacion.add(i);
}
}
}
return menusPorAplicacion;
}
public List<SelectItem> getListaOrdenMenuPadre() {
nomAplicacion = (String)comboAplicaUpdate.getValue()==null ? (String)aplicacionUpdateIn.getValue() :
(String)comboAplicaUpdate.getValue();
listaOrdenMenuPadre = new ArrayList<SelectItem>();
try{
String selectedMenuPadre = (String)menuPadreUpdate.getValue()==null ? " " : (String)menuPadreUpdate.getValue();
if(selectedMenuPadre.trim().equals("")){
throw new Exception();
}
Menu menuPadreT = ss.obtenerMenu(selectedMenuPadre);
String menuPadre = menuPadreT.getMenuPadre()==null ? " " : menuPadreT.getMenuPadre().getNombre();
ArrayList<Integer> listaOrdenIntegers = new ArrayList<Integer>();
if (nomAplicacion == null) {
SelectItem i = new SelectItem();
i.setValue("");
i.setDescription("");
i.setLabel("");
listaOrdenMenuPadre.add(i);
} else {
List<Menu> resultadoBusqueda = ss.consultarMenusConIgualPadre(nomAplicacion, menuPadre==null ? " " : menuPadre);
if (resultadoBusqueda != null) {
for (Menu m : resultadoBusqueda) {
listaOrdenIntegers.add(m.getOrden());
}
}
Collections.sort(listaOrdenIntegers);
for (Integer item : listaOrdenIntegers) {
SelectItem j = new SelectItem();
j.setValue(item.toString());
j.setLabel(item.toString());
listaOrdenMenuPadre.add(j);
}
}
}catch(Exception e){
SelectItem i = new SelectItem();
i.setValue("");
i.setDescription("");
i.setLabel("");
// listaOrdenMenuPadre = new ArrayList<SelectItem>();
listaOrdenMenuPadre.add(i);
}
return listaOrdenMenuPadre;
}
public List<SelectItem> getOpcionesPorMenu() {
nomAplicacion = (String)comboAplicaUpdate.getValue()==null ? (String)aplicacionUpdateIn.getValue() :
(String)comboAplicaUpdate.getValue();
String menuPadre = (String)menuPadreUpdate.getValue();
opcionesPorMenu = new ArrayList<SelectItem>();
listaOrdenPorMenu = new ArrayList<SelectItem>();
ArrayList<Integer> listaOrdenIntegers = new ArrayList<Integer>();
if (menuPadre == null) {
SelectItem i = new SelectItem();
i.setValue("");
i.setDescription("");
i.setLabel("");
opcionesPorMenu.add(i);
listaOrdenPorMenu.add(i);
} else {
List<Menu> resultadoBusqueda = ss
.consultarOpcionesPorMenu(nomAplicacion, menuPadre );
Collections.sort(resultadoBusqueda, new ComparatorAdmin());
if (resultadoBusqueda != null) {
for (Menu m : resultadoBusqueda) {
SelectItem i = new SelectItem();
i.setValue(m.getId());
i.setLabel(m.getNombre());
i.setDescription(m.getDescripcion());
opcionesPorMenu.add(i);
listaOrdenIntegers.add(m.getOrden());
}
}
Collections.sort(listaOrdenIntegers);
for (Integer item : listaOrdenIntegers) {
SelectItem j = new SelectItem();
j.setValue(item.toString());
j.setLabel(item.toString());
listaOrdenPorMenu.add(j);
}
}
return opcionesPorMenu;
}
public List<SelectItem> getListaOrdenPorMenu(){
nomAplicacion = (String)comboAplicaUpdate.getValue()==null ? (String)aplicacionUpdateIn.getValue() :
(String)comboAplicaUpdate.getValue();
String menuPadre = (String)menuPadreUpdate.getValue()==null ? (String)menuPadreUpdateIn.getValue() :
(String)menuPadreUpdate.getValue();
listaOrdenPorMenu = new ArrayList<SelectItem>();
ArrayList<Integer> listaOrdenIntegers = new ArrayList<Integer>();
if (menuPadre == null) {
SelectItem i = new SelectItem();
i.setValue("");
i.setDescription("");
i.setLabel("");
listaOrdenPorMenu.add(i);
} else {
List<Menu> resultadoBusqueda = ss
.consultarOpcionesPorMenu(nomAplicacion, menuPadre );
if (resultadoBusqueda != null) {
for (Menu m : resultadoBusqueda) {
listaOrdenIntegers.add(m.getOrden());
}
}
Collections.sort(listaOrdenIntegers);
for (Integer item : listaOrdenIntegers) {
SelectItem j = new SelectItem();
j.setValue(item.toString());
j.setLabel(item.toString());
listaOrdenPorMenu.add(j);
}
}
return listaOrdenPorMenu;
}
public void cargarMenusPadres(ActionEvent event) {
FacesContext fc = FacesContext.getCurrentInstance();
HttpServletRequest request = (HttpServletRequest) fc
.getExternalContext().getRequest();
String nomAplica = request
.getParameter("formNuevoMenu:fn_nomAplicacion");
setNomAplicacion(nomAplica);
}
public void setNombreAplicacion(ValueChangeEvent event){
if(event.getNewValue()!=null){
setNomAplicacion((String)event.getNewValue());
componente = event.getComponent().getId();
if(componente.equals("fn_nomAplicacion")){
comboBoxAplicacion.setValue(nomAplicacion);
}if(componente.equals("nomAplicacionUpdate")){
comboAplicaUpdate.setValue(nomAplicacion);
}if(componente.equals("aplicacionUpdateIn")){
aplicacionUpdateIn.setValue(nomAplicacion);
}
}
// if(event.getComponent().getId().contains("aplicacionUpdateIn")
// || event.getComponent().getId().contains("menuPadreUpdateIn")){
// ordenMenuIn.setDisabled(true);
// }
// if(event.getComponent().getId().contains("nomAplicacionUpdate")
// || event.getComponent().getId().contains("listaMenuPadres")
// || event.getComponent().getId().contains("listaMenuOpciones")){
// ordenMenuIn.setDisabled(false);
// }
}
public void setMenuPadreUpdateM(ValueChangeEvent event){
if(event.getNewValue()!=null){
setMenuPadreNombre((String)event.getNewValue());
menuPadreUpdateIn.setValue(menuPadreNombre);
}
}
public void setNombreM(ValueChangeEvent event){
if(event.getNewValue()!=null){
setNombreMenu((String)event.getNewValue());
nombreMenuIn.setValue(nombreMenu);
}
}
public void setDescripcionM(ValueChangeEvent event){
if(event.getNewValue()!=null){
setDescripcionMenu((String)event.getNewValue());
descripcionMenuIn.setValue(descripcionMenu);
}
}
public void setUrlM(ValueChangeEvent event){
if(event.getNewValue()!=null){
setUrlMenu((String)event.getNewValue());
urlMenuIn.setValue(urlMenu);
}
}
public void setOrdenMenuM(ValueChangeEvent event){
if(event.getNewValue()!=null){
ordenMenuIn.setValue(Integer.parseInt((String)event.getNewValue()));
}
}
public void setEstadoM(ValueChangeEvent event){
if(event.getNewValue()!=null){
setEstadoMenu((String)event.getNewValue());
estadoMenuIn.setValue(estadoMenu);
}
}
public void guardarMenu(ActionEvent event) {
Menu m = new Menu();
try{
if(nombre.trim().equals("") || descripcion.trim().equals("") ||
activo.trim().equals("") || tipo.trim().equals("") ||
((String)comboBoxAplicacion.getValue()).equals("")){
throw new Exception();
}else{
long id = ss.selectMaxIDMenu()+1L;
m.setId(id);
m.setNombre(nombre.trim());
if(url.trim().equals("")){
m.setUrl(null);
}else{
m.setUrl(url.trim());
}
m.setDescripcion(descripcion.trim());
m.setActivo(activo.trim());
m.setTipo(tipo.trim());
Menu menuPadresito = new Menu();
String carpPadre = (String)carpetaPadre.getValue();
if(!carpPadre.equals("")){
menuPadresito = ss.obtenerMenu((String)carpetaPadre.getValue());
m.setMenuPadre(menuPadresito);
}
long idAplicacion = 0L;
List<Aplicacion> aplicaciones = ss.consultarAplicaciones();
Aplicacion appMenu = new Aplicacion();
for(Aplicacion app : aplicaciones){
if(app.getNombre().equals((String)comboBoxAplicacion.getValue())){
idAplicacion=app.getId();
appMenu = app;
break;
}
}
m.setAplicacion(appMenu);
long idMenuPadre;
idMenuPadre = menuPadresito.getId();
int maxOrder = ss.getMaxMenuOrdenByMenuPadreAndAplicacion(idMenuPadre, idAplicacion);
m.setOrden(maxOrder+1);
ss.guardarMenu(m);
setStyle(getStyleSuccess());
setMsgAdd("Men ingresado con xito");
}
}catch(Exception e){
setStyle(getStyleError());
setMsgAdd("La operacin no fue completada");
}
}
public void actualizarMenu(ActionEvent event){
try{
FacesContext fct = FacesContext.getCurrentInstance();
HttpServletRequest request = (HttpServletRequest) fct
.getExternalContext().getRequest();
String nomAplica = request
.getParameter("menuUpdate:aplicacionUpdateIn");
setNomAplicacion(nomAplica);
if(nomAplicacion.trim().equals("") || ((String)nombreMenuIn.getValue()).trim().equals("") ||
((String)descripcionMenuIn.getValue()).trim().equals("") ||
((Integer) ordenMenuIn.getValue())==null || ((String)estadoMenuIn.getValue()).equals("")){
throw new Exception();
}else{
tipoMenuString = (String)tipoMenuIn.getValue();
if(tipoMenuString.equals("opcion")){
Menu m = new Menu();
m = ss.obtenerMenu((String)opcionUpdate.getValue());
if(!m.getAplicacion().getNombre().equals(nomAplicacion)){
FacesContext fc = FacesContext.getCurrentInstance();
if(m.getMenuPadre().getNombre().equals((String)menuPadreUpdateIn.getValue())){
fc.addMessage("menuPadreUpdateIn", new FacesMessage(FacesMessage.SEVERITY_INFO,
"Debe elegir un menu padre distinto",null));
fc.addMessage("ordenMenuIn", new FacesMessage(FacesMessage.SEVERITY_INFO,
"El orden se seleccionar automticamente",null));
return;
}else{
fc.addMessage("ordenMenuIn", new FacesMessage(FacesMessage.SEVERITY_INFO,
"El orden se seleccionar automticamente",null));
//////GUARDAR MENUS CON ORDEN ELEGIDO AUTOMATICAMENTE///////
actualizarMenuOrden(m,"auto",event);
setStyle(getStyleSuccess());
setMsgUp("Men actualizado con xito");
}
return;
}else if(m.getAplicacion().getNombre().equals(nomAplicacion)){
FacesContext fc = FacesContext.getCurrentInstance();
if(m.getMenuPadre().getNombre().equals(menuPadreUpdateIn.getValue())){
if(m.getOrden() != (Integer) ordenMenuIn.getValue()){
//////GUARDAR MENUS CON ORDEN ELEGIDO POR EL USUARIO///////
actualizarMenuOrden(m,"user",event);
setStyle(getStyleSuccess());
setMsgUp("Men actualizado con xito");
}else{
actualizarMenuOrden(m,"ninguno",event);
setStyle(getStyleSuccess());
setMsgUp("Men actualizado con xito");
}
}else{
fc.addMessage("ordenMenuIn", new FacesMessage(FacesMessage.SEVERITY_INFO,
"El orden se seleccionar automticamente",null));
//////GUARDAR MENUS CON ORDEN ELEGIDO AUTOMATICAMENTE///////
actualizarMenuOrden(m,"auto",event);
setStyle(getStyleSuccess());
setMsgUp("Men actualizado con xito");
}
return;
}
}
if(tipoMenuString.equals("menu")){
Menu m = new Menu();
m = ss.obtenerMenu((String)menuPadreUpdate.getValue());
if(!m.getAplicacion().getNombre().equals(nomAplicacion)){
FacesContext fc = FacesContext.getCurrentInstance();
fc.addMessage("ordenMenuIn", new FacesMessage(FacesMessage.SEVERITY_INFO,
"El orden se seleccionar automticamente",null));
//////GUARDAR MENUS CON ORDEN ELEGIDO AUTOMATICAMENTE///////
actualizarMenuOrden(m,"auto",event);
setStyle(getStyleSuccess());
setMsgUp("Men actualizado con xito");
return;
}
if(m.getAplicacion().getNombre().equals(nomAplicacion)){
FacesContext fc = FacesContext.getCurrentInstance();
String menuPadre = (String)menuPadreUpdateIn.getValue()==null ? "" : (String)menuPadreUpdateIn.getValue();
if(menuPadre.trim().equals("")){
if(m.getOrden() != (Integer) ordenMenuIn.getValue()){
//////GUARDAR MENUS CON ORDEN ELEGIDO POR EL USUARIO///////
actualizarMenuOrden(m,"user",event);
setStyle(getStyleSuccess());
setMsgUp("Men actualizado con xito");
}else{
actualizarMenuOrden(m,"ninguno",event);
setStyle(getStyleSuccess());
setMsgUp("Men actualizado con xito");
}
return;
}
String menuPadreBase = m.getMenuPadre()==null ? "" : m.getMenuPadre().getNombre();
if(menuPadreBase.equals(menuPadreUpdateIn.getValue())){
if(m.getOrden() != (Integer) ordenMenuIn.getValue()){
//////GUARDAR MENUS CON ORDEN ELEGIDO POR EL USUARIO///////
actualizarMenuOrden(m,"user",event);
setStyle(getStyleSuccess());
setMsgUp("Men actualizado con xito");
}else{
actualizarMenuOrden(m,"ninguno",event);
setStyle(getStyleSuccess());
setMsgUp("Men actualizado con xito");
}
return;
}else{
fc.addMessage("ordenMenuIn", new FacesMessage(FacesMessage.SEVERITY_INFO,
"El orden se seleccionar automticamente",null));
//////GUARDAR MENUS CON ORDEN ELEGIDO AUTOMATICAMENTE///////
actualizarMenuOrden(m,"auto",event);
setStyle(getStyleSuccess());
setMsgUp("Men actualizado con xito");
return;
}
}
}
}
}catch(Exception e){
e.printStackTrace();
setStyle(getStyleError());
setMsgUp("La operacin no fue completada");
}
}
public void actualizarMenuOrden(Menu m, String ordenAutomatico, ActionEvent event){
// m.setNombre(nombreMenu);
// m.setUrl(urlMenu);
// m.setDescripcion(descripcionMenu);
// m.setActivo(estadoMenu);
m.setNombre(((String)nombreMenuIn.getValue()).trim());
String url = ((String)urlMenuIn.getValue())==null ? "" : ((String)urlMenuIn.getValue()).trim();
if(url.equals("")){
m.setUrl(null);
}else{
m.setUrl(url);
}
m.setDescripcion(((String)descripcionMenuIn.getValue()).trim());
m.setActivo((String)estadoMenuIn.getValue());
Menu menuPadresito = new Menu();
String carpPadre = (String)menuPadreUpdateIn.getValue()==null ? "" :
(((String)menuPadreUpdateIn.getValue()).equals("Ninguno") ? "" : (String)menuPadreUpdateIn.getValue());
if(!carpPadre.trim().equals("")){
menuPadresito = ss.obtenerMenu((String)menuPadreUpdateIn.getValue());
}
long idAplicacion = 0L;
List<Aplicacion> aplicaciones = ss.consultarAplicaciones();
Aplicacion appMenu = new Aplicacion();
for(Aplicacion app : aplicaciones){
if(app.getNombre().equals(nomAplicacion)){
idAplicacion=app.getId();
appMenu = app;
break;
}
}
///Debo hacer antes de setear la nueva aplicacion y el menu padre
long idMenuPadre;
idMenuPadre = menuPadresito.getId();
int maxOrder = 0;
tipoMenuString = (String)tipoMenuIn.getValue();
if(tipoMenuString.equals("opcion")){
idMenuPadre = menuPadresito.getId();
maxOrder = ss.getMaxMenuOrdenByMenuPadreAndAplicacion(idMenuPadre, idAplicacion);
}
if(tipoMenuString.equals("menu")){
maxOrder = ss.getMaxMenuOrdenByMenuPadreAndAplicacion(idMenuPadre, idAplicacion);
}
if(!carpPadre.trim().equals("")){
m.setMenuPadre(menuPadresito);
}else{
m.setMenuPadre(null);
}
m.setAplicacion(appMenu);
if(ordenAutomatico.equals("auto")){
m.setOrden(maxOrder+1);
}if(ordenAutomatico.equals("user")){
m.setOrden((Integer)ordenMenuIn.getValue());
}if(ordenAutomatico.equals("ninguno")){
}
ss.actualizarMenu(m);
limpiarComponentesMenusTotal(event);
}
public List<SelectItem> getOpcionesActivo() {
SelectItem i = new SelectItem();
i.setValue("SI");
i.setLabel("Si");
opcionesActivo.add(i);
SelectItem j = new SelectItem();
j.setValue("NO");
j.setLabel("No");
opcionesActivo.add(j);
return opcionesActivo;
}
public void cargarModificarMenu(ValueChangeEvent event){
tipoMenuString = (String)event.getNewValue()==null ? " " : (String)event.getNewValue();
setNomAplicacion(((String)comboAplicaUpdate.getValue()==null ? (String)aplicacionUpdateIn.getValue() :
(String)comboAplicaUpdate.getValue()));
limpiarComponentesMenus(new ActionEvent(event.getComponent()));
if(tipoMenuString.equals("opcion")){
try{
Menu m = ss.obtenerMenu((String)opcionUpdate.getValue());
aplicacionUpdateIn.setValue(m.getAplicacion().getNombre());
aplicacionActualOut.setValue("Actual: " + m.getAplicacion().getNombre());
menuPadreUpdateIn.setValue(m.getMenuPadre().getNombre());
menuPadreActualOut.setValue("Actual: " + m.getMenuPadre().getNombre());
nombreMenuIn.setValue(m.getNombre());
nombreMenuOut.setValue("Actual: " + m.getNombre());
descripcionMenuIn.setValue(m.getDescripcion());
descripcionMenuOut.setValue("Actual: " + m.getDescripcion());
HtmlInputText urlIn = (HtmlInputText)urlMenuIn;
urlIn.setDisabled(false);
urlMenuIn.setValue(m.getUrl());
urlMenuOut.setValue("Actual: " + m.getUrl());
ordenMenuIn.setValue(m.getOrden());
ordenMenuOut.setValue("Actual: " + m.getOrden());
String activo = m.getActivo();
setEstadoMenu(activo);
estadoMenuIn.setValue(activo);
} catch (Exception e){
System.out.println("No entity found for query");
}
}
if(tipoMenuString.equals("menu")){
try{
Menu m = ss.obtenerMenu((String)menuPadreUpdate.getValue());
aplicacionUpdateIn.setValue(m.getAplicacion().getNombre());
aplicacionActualOut.setValue("Actual: " + m.getAplicacion().getNombre());
String menuPadreNombre = m.getMenuPadre()==null ? " " : m.getMenuPadre().getNombre();
menuPadreUpdateIn.setValue(menuPadreNombre);
menuPadreActualOut.setValue("Actual: " + menuPadreNombre);
nombreMenuIn.setValue(m.getNombre());
nombreMenuOut.setValue("Actual: " + m.getNombre());
descripcionMenuIn.setValue(m.getDescripcion());
descripcionMenuOut.setValue("Actual: " + m.getDescripcion());
HtmlInputText urlIn = (HtmlInputText)urlMenuIn;
urlIn.setDisabled(false);
urlMenuIn.setValue(m.getUrl());
urlMenuOut.setValue("Actual: " + m.getUrl());
ordenMenuIn.setValue(m.getOrden());
ordenMenuOut.setValue("Actual: " + m.getOrden());
String activo = m.getActivo();
setEstadoMenu(activo);
estadoMenuIn.setValue(activo);
}catch (Exception e){
System.out.println("No entity found for query");
}
}
}
public void limpiarComponentesMenus(ActionEvent event){
aplicacionUpdateIn.setValue(" ");
aplicacionActualOut.setValue(" ");
menuPadreUpdateIn.setValue(" ");
menuPadreActualOut.setValue(" ");
nombreMenuIn.setValue(" ");
nombreMenuOut.setValue(" ");
descripcionMenuIn.setValue(" ");
descripcionMenuOut.setValue(" ");
urlMenuIn.setValue(" ");
urlMenuOut.setValue(" ");
ordenMenuIn.setValue(" ");
ordenMenuOut.setValue(" ");
estadoMenuIn.setValue(" ");
}
public void limpiarComponentesMenusTotal(ActionEvent event){
comboAplicaUpdate.setValue(" ");
menuPadreUpdate.setValue(" ");
opcionUpdate.setValue(" ");
tipoMenuIn.setValue("");
limpiarComponentesMenus(event);
}
public void setOpcionesActivo(List<SelectItem> opcionesActivo) {
this.opcionesActivo = opcionesActivo;
}
public HtmlSelectOneListbox getComboAplicaUpdate() {
return comboAplicaUpdate;
}
public void setComboAplicaUpdate(HtmlSelectOneListbox comboAplicaUpdate) {
this.comboAplicaUpdate = comboAplicaUpdate;
}
public HtmlSelectOneListbox getMenuPadreUpdate() {
return menuPadreUpdate;
}
public void setMenuPadreUpdate(HtmlSelectOneListbox menuPadreUpdate) {
this.menuPadreUpdate = menuPadreUpdate;
}
public HtmlSelectOneListbox getOpcionUpdate() {
return opcionUpdate;
}
public void setOpcionUpdate(HtmlSelectOneListbox opcionUpdate) {
this.opcionUpdate = opcionUpdate;
}
public HtmlSelectOneListbox getTipoMenu() {
return tipoMenu;
}
public void setTipoMenu(HtmlSelectOneListbox tipoMenu) {
this.tipoMenu = tipoMenu;
}
public HtmlSelectOneListbox getCarpetaPadre() {
return carpetaPadre;
}
public HtmlSelectOneListbox getComboBoxAplicacion() {
return comboBoxAplicacion;
}
public void setComboBoxAplicacion(HtmlSelectOneListbox comboBoxAplicacion) {
this.comboBoxAplicacion = comboBoxAplicacion;
}
public void setCarpetaPadre(HtmlSelectOneListbox carpetaPadre) {
this.carpetaPadre = carpetaPadre;
}
public String getTipo() {
return tipo;
}
public void setTipo(String tipo) {
this.tipo = tipo;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public String getDescripcion() {
return descripcion;
}
public void setDescripcion(String descripcion) {
this.descripcion = descripcion;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getActivo() {
return activo;
}
public void setActivo(String activo) {
this.activo = activo;
}
public String getNomAplicacion() {
return nomAplicacion;
}
public void setNomAplicacion(String nomAplicacion) {
this.nomAplicacion = nomAplicacion;
}
public void setMenusPorAplicacion(List<SelectItem> menusPorAplicacion) {
this.menusPorAplicacion = menusPorAplicacion;
}
///////////////////////////Nuevos////////////////////////////////////
public String getTipoMenuString() {
return tipoMenuString;
}
public void setTipoMenuString(String tipoMenuString) {
this.tipoMenuString = tipoMenuString;
}
public HtmlSelectOneRadio getTipoMenuIn() {
return tipoMenuIn;
}
public void setTipoMenuIn(HtmlSelectOneRadio tipoMenuIn) {
this.tipoMenuIn = tipoMenuIn;
}
public HtmlSelectOneListbox getAplicacionUpdateIn() {
return aplicacionUpdateIn;
}
public void setAplicacionUpdateIn(HtmlSelectOneListbox aplicacionUpdateIn) {
this.aplicacionUpdateIn = aplicacionUpdateIn;
}
public HtmlSelectOneListbox getMenuPadreUpdateIn() {
return menuPadreUpdateIn;
}
public void setMenuPadreUpdateIn(HtmlSelectOneListbox menuPadreUpdateIn) {
this.menuPadreUpdateIn = menuPadreUpdateIn;
}
public String getNombreMenu() {
return nombreMenu;
}
public void setNombreMenu(String nombreMenu) {
this.nombreMenu = nombreMenu;
}
public UIInput getNombreMenuIn() {
return nombreMenuIn;
}
public void setNombreMenuIn(UIInput nombreMenuIn) {
this.nombreMenuIn = nombreMenuIn;
}
public HtmlOutputText getNombreMenuOut() {
return nombreMenuOut;
}
public void setNombreMenuOut(HtmlOutputText nombreMenuOut) {
this.nombreMenuOut = nombreMenuOut;
}
public String getDescripcionMenu() {
return descripcionMenu;
}
public void setDescripcionMenu(String descripcionMenu) {
this.descripcionMenu = descripcionMenu;
}
public UIInput getDescripcionMenuIn() {
return descripcionMenuIn;
}
public void setDescripcionMenuIn(UIInput descripcionMenuIn) {
this.descripcionMenuIn = descripcionMenuIn;
}
public HtmlOutputText getDescripcionMenuOut() {
return descripcionMenuOut;
}
public void setDescripcionMenuOut(HtmlOutputText descripcionMenuOut) {
this.descripcionMenuOut = descripcionMenuOut;
}
public String getUrlMenu() {
return urlMenu;
}
public void setUrlMenu(String urlMenu) {
this.urlMenu = urlMenu;
}
public UIInput getUrlMenuIn() {
return urlMenuIn;
}
public void setUrlMenuIn(UIInput urlMenuIn) {
this.urlMenuIn = urlMenuIn;
}
public HtmlOutputText getUrlMenuOut() {
return urlMenuOut;
}
public void setUrlMenuOut(HtmlOutputText urlMenuOut) {
this.urlMenuOut = urlMenuOut;
}
public HtmlSelectOneListbox getOrdenMenuIn() {
return ordenMenuIn;
}
public void setOrdenMenuIn(HtmlSelectOneListbox ordenMenuIn) {
this.ordenMenuIn = ordenMenuIn;
}
public String getEstadoMenu() {
return estadoMenu;
}
public void setEstadoMenu(String estadoMenu) {
this.estadoMenu = estadoMenu;
}
public HtmlSelectOneRadio getEstadoMenuIn() {
return estadoMenuIn;
}
public void setEstadoMenuIn(HtmlSelectOneRadio estadoMenuIn) {
this.estadoMenuIn = estadoMenuIn;
}
public HtmlOutputText getAplicacionActualOut() {
return aplicacionActualOut;
}
public void setAplicacionActualOut(HtmlOutputText aplicacionActualOut) {
this.aplicacionActualOut = aplicacionActualOut;
}
public HtmlOutputText getMenuPadreActualOut() {
return menuPadreActualOut;
}
public void setMenuPadreActualOut(HtmlOutputText menuPadreActualOut) {
this.menuPadreActualOut = menuPadreActualOut;
}
public void setListaOrdenPorMenu(List<SelectItem> listaOrdenPorMenu) {
this.listaOrdenPorMenu = listaOrdenPorMenu;
}
public void setOrdenMenuOut(HtmlOutputText ordenMenuOut) {
this.ordenMenuOut = ordenMenuOut;
}
public HtmlOutputText getOrdenMenuOut() {
return ordenMenuOut;
}
public void setListaOrdenMenuPadre(List<SelectItem> listaOrdenMenuPadre) {
this.listaOrdenMenuPadre = listaOrdenMenuPadre;
}
public List<SelectItem> getListaOrden() {
listaOrden = new ArrayList<SelectItem>();
if(((String)menuPadreUpdate.getValue())==null && ((String)opcionUpdate.getValue())==null
&& tipoMenuIn.getValue()==null){
listaOrden.add(new SelectItem(" "," "));
return listaOrden;
}
if(((String)menuPadreUpdate.getValue())==null && ((String)opcionUpdate.getValue())==null
&& tipoMenuIn.getValue()!=null){
listaOrden.add(new SelectItem(" "," "));
return listaOrden;
}
if(!((String)menuPadreUpdate.getValue()).isEmpty() && ((String)opcionUpdate.getValue())==null
&& tipoMenuIn.getValue()==null){
listaOrden.add(new SelectItem(" "," "));
return listaOrden;
}
if(!((String)menuPadreUpdate.getValue()).isEmpty() && ((String)opcionUpdate.getValue())==null///
&& tipoMenuIn.getValue()!=null){
setListaOrden(getListaOrdenMenuPadre());
return listaOrden;
}
if(!((String)menuPadreUpdate.getValue()).isEmpty() && !((String)opcionUpdate.getValue()).isEmpty()
&& tipoMenuIn.getValue()==null){
listaOrden.add(new SelectItem(" "," "));
return listaOrden;
}
if(!((String)menuPadreUpdate.getValue()).isEmpty() && tipoMenuIn.getValue()==null){
setListaOrden(getListaOrdenMenuPadre());
return listaOrden;
}
if(!((String)opcionUpdate.getValue()).isEmpty() && tipoMenuIn.getValue()==null){
setListaOrden(getListaOrdenPorMenu());
return listaOrden;
}
try{
if(tipoMenuIn.getValue().equals("menu")){
setListaOrden(getListaOrdenMenuPadre());
return listaOrden;
}
if(tipoMenuIn.getValue().equals("opcion")){
setListaOrden(getListaOrdenPorMenu());
return listaOrden;
}
}catch(Exception e){
e.printStackTrace();
listaOrden.add(new SelectItem(" "," "));
}
return listaOrden;
}
public List<Menu> getListaMenusObjetos() {
listaMenusObjetos = new ArrayList<Menu>();
listaMenusObjetos = ss.getListaMenus();
Collections.sort(listaMenusObjetos, new ComparatorAdmin());
return listaMenusObjetos;
}
public void setListaOrden(List<SelectItem> listaOrden) {
this.listaOrden = listaOrden;
}
public void setOpcionesPorMenu(List<SelectItem> opcionesPorMenu) {
this.opcionesPorMenu = opcionesPorMenu;
}
/////DEPRECATED///////
public Menu getObtenerMenu() {
Menu m = new Menu();
// para traer el objeto Aplicacion
Aplicacion apli = new Aplicacion();
apli = ss.obtenerAplicacion(nomAplicacion);
m.setAplicacion(apli);
// Para traer el objeto MenuPadre
FacesContext fc = FacesContext.getCurrentInstance();
HttpServletRequest request = (HttpServletRequest) fc
.getExternalContext().getRequest();
String nomMenuPadre = request.getParameter("formNuevoMenu:fn_listaMenuPadres");
Menu menuPadresito = new Menu();
menuPadresito = ss.obtenerMenu(nomMenuPadre);
m.setMenuPadre(menuPadresito);
m.setOrden(1);
return m;
}
///////////////////////////////////////////////////////////////////////////////
public void setMenuPadreNombre(String menuPadreNombre) {
this.menuPadreNombre = menuPadreNombre;
}
public String getMenuPadreNombre() {
return menuPadreNombre;
}
public void setComponente(String componente) {
this.componente = componente;
}
public String getComponente() {
return componente;
}
public void setListaMenusObjetos(List<Menu> listaMenusObjetos) {
this.listaMenusObjetos = listaMenusObjetos;
}
public void setStyle(String style) {
this.style = style;
}
public String getStyle() {
return style;
}
public void setStyleSuccess(String styleSuccess) {
this.styleSuccess = styleSuccess;
}
public String getStyleSuccess() {
return styleSuccess;
}
public void setStyleError(String styleError) {
this.styleError = styleError;
}
public String getStyleError() {
return styleError;
}
public void setMsgAdd(String msgAdd) {
this.msgAdd = msgAdd;
}
public String getMsgAdd() {
return msgAdd;
}
public void setMsgUp(String msgUp) {
this.msgUp = msgUp;
}
public String getMsgUp() {
return msgUp;
}
}
package ec.edu.epn.seguridad.VO;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
//import javax.ejb.EJB;
import javax.faces.component.UIInput;
import javax.faces.component.html.HtmlOutputText;
import javax.faces.component.html.HtmlSelectOneRadio;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import javax.faces.event.ValueChangeEvent;
import javax.faces.model.SelectItem;
import javax.naming.InitialContext;
import javax.servlet.http.HttpServletRequest;
import ec.edu.epn.seguridad.servicio.ServicioSeguridad;
import ec.edu.epn.seguridad.vo.Perfil;
public class GestionPerfil implements Serializable {
private static final long serialVersionUID = -1412226353696522505L;
private ServicioSeguridad ss;
{
try {
InitialContext ctx = new InitialContext();
ss = (ServicioSeguridad) ctx.lookup("java:global/ServiciosSeguridadEPN/ServicioSeguridadBean!ec.edu.epn.seguridad.servicio.ServicioSeguridad");
} catch(Exception e) {
e.printStackTrace();
}
}
private String nombre;
private String descripcion;
private String activo;
///COMPONENES PARA LA ACTUALIZACION///
private UIInput inNombre;
private HtmlOutputText outNombre;
private UIInput inDescripcion;
private HtmlOutputText outDescripcion;
private HtmlSelectOneRadio inActivo;
private List<SelectItem> listaPerfil;
private List<Perfil> perfilesObjetos;
//Estilos para los mensajes de Error
private String style;
private String styleSuccess="COLOR: #008000;";
private String styleError="COLOR: #fc5868;";
private String msgAdd;
private String msgUp;
public List<SelectItem> getListaPerfil() {
listaPerfil = new ArrayList<SelectItem>();
List<Perfil> buscarPerfiles = ss.buscarPerfiles();
Collections.sort(buscarPerfiles, new ComparatorAdmin());
for(Perfil p : buscarPerfiles){
SelectItem item = new SelectItem(p.getNombre(),p.getNombre());
listaPerfil.add(item);
}
return listaPerfil;
}
public List<Perfil> getPerfilesObjetos() {
perfilesObjetos = new ArrayList<Perfil>();
perfilesObjetos = ss.buscarPerfiles();
Collections.sort(perfilesObjetos, new ComparatorAdmin());
return perfilesObjetos;
}
public void guardarPerfil(ActionEvent event){
Perfil p = new Perfil();
try{
if(nombre.trim().equals("") || descripcion.trim().equals("") || activo.trim().equals("")){
throw new Exception();
}else{
p.setNombre(nombre.trim());
p.setDescripcion(descripcion.trim());
p.setActivo(activo==null ? "SI": activo.trim());
ss.guardarPerfil(p);
setStyle(getStyleSuccess());
setMsgAdd("Perfil ingresado con xito");
setNombre("");
setDescripcion("");
setActivo("");
}
}catch(Exception e){
setStyle(getStyleError());
setMsgAdd("La operacin no fue completada");
}
}
public void actualizarPerfil(ActionEvent event){
Perfil p = new Perfil();
FacesContext fc = FacesContext.getCurrentInstance();
HttpServletRequest request = (HttpServletRequest) fc
.getExternalContext().getRequest();
String nomAplica = request
.getParameter("formActualizarPerfil:updatePerfil");
try{
p = ss.buscarPerfilPorNombre(nomAplica);
if(nombre.trim().equals("") || descripcion.trim().equals("") || activo.trim().equals("")){
throw new Exception();
}else{
p.setNombre(nombre.trim());
p.setDescripcion(descripcion.trim());
p.setActivo(activo.trim());
//p.setNombre((String)inNombre.getValue());
//p.setDescripcion((String)inDescripcion.getValue());
//p.setActivo((String)inActivo.getValue());
ss.actualizarPerfil(p);
setStyle(getStyleSuccess());
setMsgUp("Perfil actualizado con xito");
setNombre("");
outNombre.setValue("");
setDescripcion("");
outDescripcion.setValue("");
setActivo("");
}
}catch(Exception e){
setStyle(getStyleError());
setMsgUp("La operacin no fue completada");
}
}
public void cargarInfoPerfil(ValueChangeEvent event){
String nombrePerfil = (String)event.getNewValue();
if(nombrePerfil!=null){
Perfil p = ss.buscarPerfilPorNombre(nombrePerfil);
inNombre.setValue(p.getNombre());
outNombre.setValue("Actual: "+p.getNombre());
inDescripcion.setValue(p.getDescripcion());
outDescripcion.setValue("Actual: "+p.getDescripcion());
inActivo.setValue(p.getActivo());
}
}
public void cargarInicio(ActionEvent event){
setNombre("");
outNombre.setValue("");
setDescripcion("");
outDescripcion.setValue("");
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public String getDescripcion() {
return descripcion;
}
public void setDescripcion(String descripcion) {
this.descripcion = descripcion;
}
public String getActivo() {
return activo;
}
public void setActivo(String activo) {
this.activo = activo;
}
public UIInput getInNombre() {
return inNombre;
}
public void setInNombre(UIInput inNombre) {
this.inNombre = inNombre;
}
public HtmlOutputText getOutNombre() {
return outNombre;
}
public void setOutNombre(HtmlOutputText outNombre) {
this.outNombre = outNombre;
}
public UIInput getInDescripcion() {
return inDescripcion;
}
public void setInDescripcion(UIInput inDescripcion) {
this.inDescripcion = inDescripcion;
}
public HtmlOutputText getOutDescripcion() {
return outDescripcion;
}
public void setOutDescripcion(HtmlOutputText outDescripcion) {
this.outDescripcion = outDescripcion;
}
public HtmlSelectOneRadio getInActivo() {
return inActivo;
}
public void setInActivo(HtmlSelectOneRadio inActivo) {
this.inActivo = inActivo;
}
public void setListaPerfil(List<SelectItem> listaPerfil) {
this.listaPerfil = listaPerfil;
}
public void setPerfilesObjetos(List<Perfil> perfilesObjetos) {
this.perfilesObjetos = perfilesObjetos;
}
public void setStyle(String style) {
this.style = style;
}
public String getStyle() {
return style;
}
public void setStyleSuccess(String styleSuccess) {
this.styleSuccess = styleSuccess;
}
public String getStyleSuccess() {
return styleSuccess;
}
public void setStyleError(String styleError) {
this.styleError = styleError;
}
public String getStyleError() {
return styleError;
}
public void setMsgAdd(String msgAdd) {
this.msgAdd = msgAdd;
}
public String getMsgAdd() {
return msgAdd;
}
public void setMsgUp(String msgUp) {
this.msgUp = msgUp;
}
public String getMsgUp() {
return msgUp;
}
}
package ec.edu.epn.seguridad.VO;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;
//import javax.ejb.EJB;
//import javax.faces.application.Application;
import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.component.UIInput;
import javax.faces.component.html.HtmlOutputText;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import javax.faces.event.ValueChangeEvent;
import javax.faces.model.SelectItem;
import javax.faces.validator.ValidatorException;
import javax.naming.InitialContext;
import javax.servlet.http.HttpServletRequest;
import ec.edu.epn.seguridad.servicio.ServicioSeguridad;
import ec.edu.epn.seguridad.vo.Personal;
import ec.edu.epn.seguridad.vo.Unidad;
import ec.edu.epn.seguridad.vo.Usuario;
public class GestionUsuario implements Serializable{
private static final long serialVersionUID = -4706493107016051445L;
private ServicioSeguridad ss;
{
try {
InitialContext ctx = new InitialContext();
ss = (ServicioSeguridad) ctx.lookup("java:global/ServiciosSeguridadEPN/ServicioSeguridadBean!ec.edu.epn.seguridad.servicio.ServicioSeguridad");
} catch(Exception e) {
e.printStackTrace();
}
}
///Ingreso de nuevos Usuarios
private String nombre;
private String clave;
private String cedula;
private String personalIn;
private String unidadIn;
private List<SelectItem> listaPersonal;
private List<SelectItem> listaUnidad;
///Actualizacin de Usuarios
private List<SelectItem> listaUsuarios;
private UIInput nombreIn;
private HtmlOutputText nombreOut;
private UIInput claveIn;
private HtmlOutputText claveOut;
private UIInput cedulaIn;
private HtmlOutputText cedulaOut;
private UIInput personalIN;
private HtmlOutputText personalOut;
private UIInput unidadIN;
private HtmlOutputText unidadOut;
///Listado de Usuarios
private List<UsuarioTemp> listaUsuariosObjetos;
//Estilos para los mensajes de Error
private String style;
private String styleSuccess="COLOR: #008000;";
private String styleError="COLOR: #fc5868;";
private String msgAdd;
private String msgUp;
public List<SelectItem> getListaPersonal() {
listaPersonal = new ArrayList<SelectItem>();
List<Personal> buscarPersonal = ss.getListaPersonal();
Collections.sort(buscarPersonal, new ComparatorAdmin());
for(Personal per : buscarPersonal){
SelectItem item = new SelectItem(per.getNombresPe(),per.getNombresPe());
listaPersonal.add(item);
}
return listaPersonal;
}
public List<SelectItem> getListaUnidad() {
listaUnidad = new ArrayList<SelectItem>();
List<Unidad> buscarUnidades = ss.getListaUnidades();
Collections.sort(buscarUnidades, new ComparatorAdmin());
for(Unidad u : buscarUnidades){
SelectItem item = new SelectItem(u.getNombreU(),u.getNombreU());
listaUnidad.add(item);
}
return listaUnidad;
}
public List<SelectItem> getListaUsuarios() {
listaUsuarios = new ArrayList<SelectItem>();
List<Usuario> buscarUsuarios = ss.getListaUsuarios();
Collections.sort(buscarUsuarios, new ComparatorAdmin());
for(Usuario u : buscarUsuarios){
SelectItem item = new SelectItem(u.getNombreUsuario(),u.getNombreUsuario());
listaUsuarios.add(item);
}
return listaUsuarios;
}
public void guardarUsuario(ActionEvent event){
Usuario user = new Usuario();
try{
if(nombre.trim().equals("") || clave.trim().equals("") || cedula.trim().equals("")
|| personalIn.trim().equals("") || unidadIn.trim().equals("")){
throw new Exception();
}else{
Validadores val = new Validadores();
if(val.isCedula(cedula.trim())){
user.setCedula(cedula.trim());
}else{
throw new NumberFormatException();
}
user.setNombreUsuario(nombre.trim());
user.setClave(!clave.trim().equals("") ? clave.trim() : "epn.edu.ec");
user.setFechaCreacion(new Date());
user.setIdPersonal(getIdPersonal());
user.setId_unidad(getIdUnidad());
ss.guardarUsuario(user);
setStyle(getStyleSuccess());
setMsgAdd("Usuario ingresado con xito");
setNombre("");
setClave("");
setCedula("");
setPersonalIn("");
setUnidadIn("");
}
}catch(Exception e){
setStyle(getStyleError());
if(e.getClass().getName().equals(NumberFormatException.class.getName())){
setMsgAdd("Valor de cdula errneo");
}else{
setMsgAdd("La operacin no fue completada");
}
}
}
public void validarCedula(FacesContext context, UIComponent component,
Object value) throws ValidatorException{
String numCedula = (String)value;
Validadores val = new Validadores();
if(!val.isCedula(numCedula)){
throw new ValidatorException(new FacesMessage(
FacesMessage.SEVERITY_ERROR, "La cdula debe contener solo nmeros",
"El nmero de cdula "+numCedula+" es invlido"
));
}
}
public void cargarDatosUsuario(ValueChangeEvent event){
String nombreUsuario = (String)event.getNewValue();
if(nombreUsuario!=null){
try{
Usuario user = ss.buscarUsuarioPorNombre(nombreUsuario);
nombreIn.setValue(user.getNombreUsuario());
nombreOut.setValue("Actual: "+user.getNombreUsuario());
claveIn.setValue(user.getClave());
claveOut.setValue("Actual: "+user.getClave());
cedulaIn.setValue(user.getCedula());
cedulaOut.setValue("Actual: "+user.getCedula());
personalIN.setValue(getNombrePersonal(user.getIdPersonal()));
personalOut.setValue("Actual: "+getNombrePersonal(user.getIdPersonal()));
unidadIN.setValue(getNombreUnidad(user.getId_unidad()));
unidadOut.setValue("Actual: "+getNombreUnidad(user.getId_unidad()));
}catch(Exception e){
System.out.println("Usuario no encontrado");
}
}
}
public void actualizarUsuario(ActionEvent event){
FacesContext fc = FacesContext.getCurrentInstance();
HttpServletRequest request = (HttpServletRequest) fc
.getExternalContext().getRequest();
String usuarioSeleccionado = request.getParameter("formActualizarUsuario:seleccionUsuario");
try{
if(nombre.trim().equals("") || clave.trim().equals("") || cedula.trim().equals("")
|| personalIn.trim().equals("") || unidadIn.trim().equals("")){
throw new Exception();
}else{
Usuario user = ss.buscarUsuarioPorNombre(usuarioSeleccionado);
Validadores val = new Validadores();
if(val.isCedula(cedula.trim())){
user.setCedula(cedula.trim());
}else{
throw new NumberFormatException();
}
user.setNombreUsuario(!nombre.trim().equals("") ? nombre.trim() : user.getNombreUsuario());
user.setClave(!clave.trim().equals("") ? clave.trim() : "epn.edu.ec");
user.setId_unidad(getIdUnidad());
user.setIdPersonal(getIdPersonal());
ss.actualizarUsuario(user);
setStyle(getStyleSuccess());
setMsgUp("Usuario actualizado con xito");
setNombre(" ");
setClave(" ");
setCedula(" ");
setPersonalIn(" ");
setUnidadIn(" ");
}
}catch(Exception e){
setStyle(getStyleError());
if(e.getClass().getName().equals(NumberFormatException.class.getName())){
setMsgUp("Valor de cdula errneo");
}else{
setMsgUp("La operacin no fue completada");
}
}
}
public List<UsuarioTemp> getListaUsuariosObjetos() {
listaUsuariosObjetos = new ArrayList<UsuarioTemp>();
List<Usuario> users = new ArrayList<Usuario>();
users = ss.getListaUsuarios();
Collections.sort(users, new ComparatorAdmin());
for(Usuario user : users){
UsuarioTemp userTemp = new UsuarioTemp();
userTemp.setId(user.getId());
userTemp.setNombreUsuario(user.getNombreUsuario());
userTemp.setClave(user.getClave());
userTemp.setCedula(user.getCedula());
userTemp.setFechaCreacion(user.getFechaCreacion());
Personal per = new Personal();
per = ss.buscarPersonalPorID(user.getIdPersonal());
Unidad uni = new Unidad();
uni = ss.buscarUnidadPorID(user.getId_unidad());
userTemp.setPersonal(per);
userTemp.setUnidad(uni);
listaUsuariosObjetos.add(userTemp);
}
return listaUsuariosObjetos;
}
private int getIdUnidad() {
return ss.buscarUnidadPorNombre(unidadIn).getIdUnidad();
}
private String getIdPersonal() {
return ss.buscarPersonalPorNombre(personalIn).getIdPersonal();
}
public String getNombrePersonal(String personalId){
List<Personal> buscarPersonal = ss.getListaPersonal();
for(Personal p: buscarPersonal){
if(p.getIdPersonal().equals(personalId)){
return p.getNombresPe();
}
}
return " ";
}
public String getNombreUnidad(int unidadId){
List<Unidad> buscarUnidades = ss.getListaUnidades();
for(Unidad u : buscarUnidades){
if(u.getIdUnidad()==unidadId){
return u.getNombreU();
}
}
return " ";
}
public void cargarInicio(ActionEvent event){
nombreIn.setValue(" ");
claveIn.setValue(" ");
cedulaIn.setValue(" ");
personalIN.setValue(" ");
unidadIN.setValue(" ");
nombreOut.setValue("");
claveOut.setValue("");
cedulaOut.setValue("");
personalOut.setValue("");
unidadOut.setValue("");
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public String getClave() {
return clave;
}
public void setClave(String clave) {
this.clave = clave;
}
public String getCedula() {
return cedula;
}
public void setCedula(String cedula) {
this.cedula = cedula;
}
public String getPersonalIn() {
return personalIn;
}
public void setPersonalIn(String personalIn) {
this.personalIn = personalIn;
}
public String getUnidadIn() {
return unidadIn;
}
public void setUnidadIn(String unidadIn) {
this.unidadIn = unidadIn;
}
public void setListaPersonal(List<SelectItem> listaPersonal) {
this.listaPersonal = listaPersonal;
}
public void setListaUnidad(List<SelectItem> listaUnidad) {
this.listaUnidad = listaUnidad;
}
public void setListaUsuarios(List<SelectItem> listaUsuarios) {
this.listaUsuarios = listaUsuarios;
}
public UIInput getNombreIn() {
return nombreIn;
}
public void setNombreIn(UIInput nombreIn) {
this.nombreIn = nombreIn;
}
public HtmlOutputText getNombreOut() {
return nombreOut;
}
public void setNombreOut(HtmlOutputText nombreOut) {
this.nombreOut = nombreOut;
}
public UIInput getClaveIn() {
return claveIn;
}
public void setClaveIn(UIInput claveIn) {
this.claveIn = claveIn;
}
public HtmlOutputText getClaveOut() {
return claveOut;
}
public void setClaveOut(HtmlOutputText claveOut) {
this.claveOut = claveOut;
}
public UIInput getCedulaIn() {
return cedulaIn;
}
public void setCedulaIn(UIInput cedulaIn) {
this.cedulaIn = cedulaIn;
}
public HtmlOutputText getCedulaOut() {
return cedulaOut;
}
public void setCedulaOut(HtmlOutputText cedulaOut) {
this.cedulaOut = cedulaOut;
}
public UIInput getPersonalIN() {
return personalIN;
}
public void setPersonalIN(UIInput personalIN) {
this.personalIN = personalIN;
}
public HtmlOutputText getPersonalOut() {
return personalOut;
}
public void setPersonalOut(HtmlOutputText personalOut) {
this.personalOut = personalOut;
}
public UIInput getUnidadIN() {
return unidadIN;
}
public void setUnidadIN(UIInput unidadIN) {
this.unidadIN = unidadIN;
}
public HtmlOutputText getUnidadOut() {
return unidadOut;
}
public void setUnidadOut(HtmlOutputText unidadOut) {
this.unidadOut = unidadOut;
}
public void setListaUsuariosObjetos(List<UsuarioTemp> listaUsuariosObjetos) {
this.listaUsuariosObjetos = listaUsuariosObjetos;
}
public void setStyle(String style) {
this.style = style;
}
public String getStyle() {
return style;
}
public void setStyleSuccess(String styleSuccess) {
this.styleSuccess = styleSuccess;
}
public String getStyleSuccess() {
return styleSuccess;
}
public void setStyleError(String styleError) {
this.styleError = styleError;
}
public String getStyleError() {
return styleError;
}
public void setMsgAdd(String msgAdd) {
this.msgAdd = msgAdd;
}
public String getMsgAdd() {
return msgAdd;
}
public void setMsgUp(String msgUp) {
this.msgUp = msgUp;
}
public String getMsgUp() {
return msgUp;
}
}
package ec.edu.epn.seguridad.VO;
import java.io.Serializable;
import ec.edu.epn.seguridad.vo.Menu;
public class MenuAccion implements Serializable, Comparable<MenuAccion> {
/**
*
*/
private static final long serialVersionUID = 4511109797669299668L;
private Menu menu;
public MenuAccion(Menu menu) {
this.menu = menu;
}
//Eclipse Generated hashCode and equals
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((menu == null) ? 0 : menu.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
MenuAccion other = (MenuAccion) obj;
if (menu == null) {
if (other.menu != null)
return false;
} else if (!menu.equals(other.menu))
return false;
return true;
}
public Menu getMenu() {
return menu;
}
public void setMenu(Menu menu) {
this.menu = menu;
}
@Override
public int compareTo(MenuAccion o) {
// TODO Auto-generated method stub
return 0;
}
}
\ No newline at end of file
package ec.edu.epn.seguridad.VO;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.faces.context.FacesContext;
import javax.faces.model.SelectItem;
import javax.naming.InitialContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.jasig.cas.client.util.AbstractCasFilter;
import org.jasig.cas.client.validation.Assertion;
import org.primefaces.model.DefaultTreeNode;
import org.primefaces.model.TreeNode;
import org.primefaces.model.menu.DefaultMenuItem;
import org.primefaces.model.menu.DefaultMenuModel;
import org.primefaces.model.menu.DefaultSeparator;
import org.primefaces.model.menu.DefaultSubMenu;
import org.primefaces.model.menu.MenuModel;
import ec.edu.epn.seguridad.servicio.ServicioSeguridad;
import ec.edu.epn.seguridad.vo.Menu;
import ec.edu.epn.seguridad.vo.Perfil;
import ec.edu.epn.seguridad.vo.Usuario;
/**
* Maneja la pantalla de seleccin de rol, la informacin del menu dinmico e
* incluye funciones para validar accesos a nivel de componentes web, ejemplo:
* si un botn no se debe presentar si el usuario no tiene permiso de creacin
* se colocara el atributo rendered="${sesionUsuario.puedeCrear}"
*
*
*/
public class SesionUsuario implements Serializable {
/**
*
*/
private static final long serialVersionUID = 2171946028044573953L;
public static String NOMBRE_VARIABLE_ACCESOS = "EPN_ACCESOS";
public int UNIDAD_USUARIO_LOGEADO = 0;
public String nombre_usuario_logeado = " ";
public long id_usuario_log = 0;
public String id_sessionU = "";
private ServicioSeguridad ss;
{
try {
InitialContext ctx = new InitialContext();
ss = (ServicioSeguridad) ctx.lookup(
"java:global/ServiciosSeguridadEPN/ServicioSeguridadBean!ec.edu.epn.seguridad.servicio.ServicioSeguridad");
} catch (Exception e) {
e.printStackTrace();
}
}
private String perfilSeleccionado;
private Map<String, String> opciones;
private TreeNode root;
private TreeNode selectedNode;
private MenuModel model;
// Contiene los datos del usuario logeado
private Usuario usuario;
/**
* Retorna todos los perfiles que tiene el usuario logeado
*
* @return
*/
public List<SelectItem> getPerfiles() {
List<SelectItem> perfiles = new ArrayList<SelectItem>();
String nombreUsuario = getUsuario().getNombreUsuario();
List<Perfil> resultadoBusqueda = ss.obtenerPerfilesUsuario(nombreUsuario);
if (resultadoBusqueda != null) {
for (Perfil p : resultadoBusqueda) {
SelectItem i = new SelectItem();
i.setDescription(p.getNombre());
i.setValue(p.getNombre());
i.setLabel(p.getNombre());
perfiles.add(i);
}
}
return perfiles;
}
/**
* Se ejecuta al momento de hacer click en el boton Aceptar de la pantalla
* Seleccionar Rol
*/
public String seleccionRol(String idAplicativo) {
String nombreUsuario = getUsuario().getNombreUsuario();
long varIdAplicativo= Long.valueOf(idAplicativo);
if (perfilSeleccionado != null && ss.usuarioTienePerfil(nombreUsuario, perfilSeleccionado)) {
llenarMenus(perfilSeleccionado, varIdAplicativo);
cargarRol(perfilSeleccionado);
return "principal";
} else {
return null;
}
}
public TreeNode getRoot() {
return root;
}
public TreeNode getSelectedNode() {
return selectedNode;
}
public void setSelectedNode(TreeNode selectedNode) {
this.selectedNode = selectedNode;
}
public void llenarMenus(String peril, long idAplicativo) {
model = new DefaultMenuModel();
FacesContext fc = FacesContext.getCurrentInstance();
String urlAplicacion = fc.getExternalContext().getInitParameter("urlAplicacion");
List<Menu> menusPadre = ss.obtenerMenusPadreAplicacion(peril.trim(), idAplicativo);
DefaultSeparator separator = new DefaultSeparator();
separator.setStyleClass("fa fa-ellipsis-v menu-separator");
for (Menu m : menusPadre) {
DefaultSubMenu firstSubmenu = new DefaultSubMenu(m.getNombre().trim().concat(" "));
firstSubmenu.setStyle("font-family: 'calibri Light'; font-size: 11px;");
firstSubmenu.setIcon("fa fa-caret-right");
firstSubmenu.setExpanded(true);
List<Menu> menusHijo = ss.obtenerMenusHijo(peril.trim(), m.getId(), "menu", "opcion");
for (Menu mi : menusHijo) {
if (mi.getTipo().trim().equals("menu")) {
DefaultSubMenu secondSubmenu = new DefaultSubMenu(mi.getNombre().trim());
secondSubmenu.setStyle("font-family: 'calibri Light'; font-size: 11px;");
secondSubmenu.setIcon("fa fa-folder");
List<Menu> opcionesMenu = ss.obtenerMenusHijo(peril.trim(), mi.getId(), "opcion", "");
for (Menu mo : opcionesMenu) {
DefaultMenuItem item = new DefaultMenuItem(mo.getNombre().trim());
item.setStyle("font-family: 'calibri Light'; font-size: 11px;");
item.setUrl(urlAplicacion + mo.getUrl());
secondSubmenu.addElement(item);
}
firstSubmenu.addElement(secondSubmenu);
} else {
DefaultMenuItem item = new DefaultMenuItem(mi.getNombre().trim());
item.setStyle("font-family: 'calibri Light'; font-size: 11px;");
item.setUrl(urlAplicacion + mi.getUrl());
firstSubmenu.addElement(item);
}
}
model.addElement(firstSubmenu);
model.addElement(separator);
}
}
private void cargarRol(String rol) {
Map<String, String> opciones = new HashMap<String, String>();
FacesContext fc = FacesContext.getCurrentInstance();
String urlAplicacion = fc.getExternalContext().getInitParameter("urlAplicacion");
root = new DefaultTreeNode(new MenuAccion(null), null);
List<Menu> menus = ss.obtenerMenusPorRol(rol);
List<Menu> menusPadre = ss.obtenerMenusPadre(rol);
TreeNode[] listPadre = new TreeNode[menusPadre.size()];
for (int i = 0; i < menusPadre.size(); i++) {
listPadre[i] = new DefaultTreeNode(new MenuAccion(menusPadre.get(i)), root);
List<Menu> menusHijo = ss.obtenerMenusHijo(rol, menusPadre.get(i).getId(), "menu", "opcion");
TreeNode[] listHijo = new TreeNode[menusHijo.size()];
for (int j = 0; j < menusHijo.size(); j++) {
listHijo[j] = new DefaultTreeNode(new MenuAccion(menusHijo.get(j)), listPadre[i]);
List<Menu> opcionesMenu = ss.obtenerMenusHijo(rol, menusHijo.get(j).getId(), "opcion", "");
TreeNode[] listOpciones = new TreeNode[opcionesMenu.size()];
for (int k = 0; k < opcionesMenu.size(); k++) {
listOpciones[k] = new DefaultTreeNode(new MenuAccion(opcionesMenu.get(k)), listHijo[j]);
}
}
}
for (Menu m : menus) {
if (m.getUrlCompleto() != null && m.getTipo() != "menu" && m.getUrlCompleto().startsWith(urlAplicacion)) {
opciones.put(m.getUrl(), m.getPermisos());
}
}
setOpciones(opciones);
}
/**
* Permite que aparezcan como expandidas las carpetas de segundo nivel
*/
/**
* Obtiene el usuario de la variable de session en donde publica el Filtro
* de Autorizacion de CAS y lo guarda en un atributo para que a partir de la
* segunda vez se consulte directamente de este atributo
*/
public Usuario getUsuario() {
if (usuario == null) {
FacesContext fc = FacesContext.getCurrentInstance();
HttpServletRequest request = (HttpServletRequest) fc.getExternalContext().getRequest();
HttpSession session = request.getSession();
Assertion a = (Assertion) session.getAttribute(AbstractCasFilter.CONST_CAS_ASSERTION);
String nombreUsuario = a.getPrincipal().getName();
usuario = ss.obtenerUsuario(nombreUsuario);
id_sessionU = (String) session.getId();
session.setAttribute("unidadUsuarioLogueado", usuario.getId_unidad());
UNIDAD_USUARIO_LOGEADO = (Integer) session.getAttribute("unidadUsuarioLogueado");
session.setAttribute("NombreUsuarioLog", usuario.getNombreUsuario());
nombre_usuario_logeado = (String) session.getAttribute("NombreUsuarioLog");
session.setAttribute("IdUsuarioLog", usuario.getId());
id_usuario_log = (Long) session.getAttribute("IdUsuarioLog");
}
return usuario;
}
/**
* Retorna el campo permisos de la tabla autorizaciones para la url actual
*/
public String getAccesos() {
FacesContext fc = FacesContext.getCurrentInstance();
HttpServletRequest request = (HttpServletRequest) fc.getExternalContext().getRequest();
return (String) request.getAttribute(NOMBRE_VARIABLE_ACCESOS);
}
/**
* Valida que el usuario tenga permisos en la tabla autorizaciones para la
* url actual
*/
public String getPermisosAcceso(String permisoAcceso) {
FacesContext fc = FacesContext.getCurrentInstance();
HttpServletRequest request = (HttpServletRequest) fc.getExternalContext().getRequest();
String acceso = (String) request.getAttribute(NOMBRE_VARIABLE_ACCESOS);
char delimiter = ' ';
String accesoToken = " ";
accesoToken = acceso;
String puedeLeer = "";
String puedeCrear = "";
String puedeModificar = "";
String puedeEliminar = "";
if (acceso != null) {
int N = 0;
for (int i = 0; i < accesoToken.length(); i++)
if (accesoToken.charAt(i) == delimiter)
N++;
String[] tokens = new String[N + 1];
int right = 0, left = 0;
for (int i = 0; i < N; i++) {
while (accesoToken.charAt(right) != delimiter)
right++;
tokens[i] = accesoToken.substring(left, right);
right++;
left = right;
}
tokens[N] = accesoToken.substring(right, accesoToken.length());
for (int i = 0; i < tokens.length; i++) {
if (i == 0 && permisoAcceso == "l") {
puedeLeer = tokens[i];
if (puedeLeer.equals("l")) {
return "false";
} else if (puedeLeer.equals("-") || puedeLeer.equals(" ")) {
return "true";
}
} else if (i == 1 && permisoAcceso == "c") {
puedeCrear = tokens[i];
if (puedeCrear.equals("c")) {
return "false";
} else if (puedeCrear.equals("-") || puedeCrear.equals(" ")) {
return "true";
}
} else if (i == 2 && permisoAcceso == "m") {
puedeModificar = tokens[i];
if (puedeModificar.equals("m")) {
return "false";
} else if (puedeModificar.equals("-") || puedeModificar.equals(" ")) {
return "true";
}
} else if (i == 3 && permisoAcceso == "e") {
puedeEliminar = tokens[i];
if (puedeEliminar.equals("e")) {
return "false";
} else if (puedeEliminar.equals("-")) {
return "true";
}
}
}
}
return "true";
}
/**
* Permiso de acceso puede crear
*/
public String getAccesoCrear() {
return getPermisosAcceso("c");
}
/**
* Permiso de acceso puede modificar
*/
public String getAccesoModificar() {
return getPermisosAcceso("m");
}
/**
* Permiso de acceso puede eliminar
*/
public String getAccesoEliminar() {
return getPermisosAcceso("e");
}
public String getPerfilSeleccionado() {
return perfilSeleccionado;
}
public void setPerfilSeleccionado(String perfilSeleccionado) {
this.perfilSeleccionado = perfilSeleccionado;
}
public Map<String, String> getOpciones() {
return opciones;
}
public void setOpciones(Map<String, String> opciones) {
this.opciones = opciones;
}
public MenuModel getModel() {
return model;
}
public void setModel(MenuModel model) {
this.model = model;
}
}
package ec.edu.epn.seguridad.VO;
import java.io.Serializable;
import ec.edu.epn.seguridad.vo.Usuario;
/**
* Emula SesionUsuario con datos quemados
*
*/
public class SesionUsuarioMock implements Serializable{
/**
*
*/
private static final long serialVersionUID = -6051644872747793329L;
private String perfilSeleccionado;
public String getPerfilSeleccionado() {
return perfilSeleccionado;
}
public void setPerfilSeleccionado(String perfilSeleccionado) {
this.perfilSeleccionado = perfilSeleccionado;
}
public Usuario getUsuario() {
Usuario u = new Usuario();
u.setNombreUsuario("username");
u.setCedula("1234567890");
return u;
}
public boolean validarAcceso(String acceso){
return true;
}
public boolean getPuedeCrear(){
return validarAcceso("c");
}
public boolean getPuedeModificar(){
return validarAcceso("m");
}
public boolean getPuedeEliminar(){
return validarAcceso("e");
}
}
package ec.edu.epn.seguridad.VO;
import java.io.Serializable;
import java.util.Date;
import ec.edu.epn.seguridad.vo.Personal;
import ec.edu.epn.seguridad.vo.Unidad;
public class UsuarioTemp implements Serializable{
/**
*
*/
private static final long serialVersionUID = 5222814270136240276L;
private long id;
private String nombreUsuario;
private String clave;
private String cedula;
private Date fechaCreacion;
private Personal personal;
private Unidad unidad;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getNombreUsuario() {
return nombreUsuario;
}
public void setNombreUsuario(String nombreUsuario) {
this.nombreUsuario = nombreUsuario;
}
public String getClave() {
return clave;
}
public void setClave(String clave) {
this.clave = clave;
}
public String getCedula() {
return cedula;
}
public void setCedula(String cedula) {
this.cedula = cedula;
}
public Date getFechaCreacion() {
return fechaCreacion;
}
public void setFechaCreacion(Date fechaCreacion) {
this.fechaCreacion = fechaCreacion;
}
public Personal getPersonal() {
return personal;
}
public void setPersonal(Personal personal) {
this.personal = personal;
}
public Unidad getUnidad() {
return unidad;
}
public void setUnidad(Unidad unidad) {
this.unidad = unidad;
}
}
package ec.edu.epn.seguridad.VO;
import java.io.Serializable;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Validadores implements Serializable{
/**
*
*/
private static final long serialVersionUID = -817588918225390437L;
private String sucesos = " ";
public static final int NUMERO_DE_PROVINCIAS = 24;
public boolean isNumeric(String entrada){
Pattern patron = Pattern.compile("[^0-9]");
Matcher encaja = patron.matcher(entrada);
setSucesos("");
try {
if(!encaja.find()){
return true;
}
else{
this.setSucesos("No es un numero");
return false;
}
}catch (NumberFormatException nfe){
return false;
}
}
public boolean isString(String entrada){
Pattern patron = Pattern.compile("[^a-zA-Z .]");
Matcher encaja = patron.matcher(entrada);
setSucesos("");
try{
if(!encaja.find()){
return true;
}
else{
this.setSucesos("No es una cadena de caracteres");
return false;
}
}catch (Exception e) {
return false;
}
}
public boolean isCedula(String entrada){
Pattern patron = Pattern.compile("[^0-9]");
Matcher encaja = patron.matcher(entrada);
int prov = Integer.parseInt(entrada.substring(0,2));
setSucesos("");
try {
if(!encaja.find()){
if (entrada.length() < 10) {
this.setSucesos("Cdula incompleta");
return false;
}else if(entrada.length() > 10){
this.setSucesos("Cdula incorrecta");
return false;
}else if(!((prov > 0) && (prov <= NUMERO_DE_PROVINCIAS))) {
this.setSucesos("Cdula incorrecta");
return false;
}
return true;
}
else{
this.setSucesos("No es una cedula");
return false;
}
}catch (NumberFormatException nfe){
return false;
}
}
public boolean isRuc(String entrada){
Pattern patron = Pattern.compile("[^0-9]");
Matcher encaja = patron.matcher(entrada);
setSucesos("");
try{
if(!encaja.find()){
if (entrada.length() != 13) {
this.setSucesos("Ruc incompleto");
return false;
}else
return true;
}
else{
this.setSucesos("No es RUC");
return false;
}
}catch (Exception e) {
this.setSucesos("No es RUC");
return false;
}
}
public boolean isMail(String entrada){
Pattern patron = Pattern.compile("^([a-zA-Z0-9_\\-\\.]+)*[a-zA-Z0-9]@[a-zA-Z]*" +
"[a-zA-Z0-9].[a-zA-Z][a-zA-Z\\.]*[a-zA-Z]$");
Matcher encaja = patron.matcher(entrada);
setSucesos("");
try {
if(!encaja.find()){
return true;
}
else{
this.setSucesos("No es un mail");
return false;
}
} catch (Exception e) {
return false;
}
}
public boolean isFono(String entrada){
Pattern patron = Pattern.compile("[^0-9]");
Matcher encaja = patron.matcher(entrada);
setSucesos("");
try {
if(!encaja.find()){
if (entrada.length() < 7 ) {
this.setSucesos("Telfono incompleto");
return false;
}else
return true;
}else{
this.setSucesos("No es un nmero vlido");
return false;
}
} catch (Exception e) {
return false;
}
}
public String getSucesos() {
return sucesos;
}
public void setSucesos(String sucesos) {
this.sucesos = sucesos;
}
}
package ec.edu.epn.seguridad.filtro;
import java.io.IOException;
import java.io.Serializable;
import java.util.Enumeration;
import java.util.Hashtable;
import javax.naming.InitialContext;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import ec.edu.epn.seguridad.VO.SesionUsuario;
import ec.edu.epn.seguridad.servicio.ServicioSeguridad;
public class FiltroAuditoria implements Filter, Serializable {
private static final long serialVersionUID = -657388017221155722L;
private FilterConfig filterConfig;
@SuppressWarnings("unused")
private ServicioSeguridad ss;
{
try {
InitialContext ctx = new InitialContext();
ss = (ServicioSeguridad) ctx
.lookup("java:global/ServiciosSeguridadEPN/ServicioSeguridadBean!ec.edu.epn.seguridad.servicio.ServicioSeguridad");
} catch (Exception e) {
e.printStackTrace();
}
}
@SuppressWarnings("unused")
public void doFilter(ServletRequest req, ServletResponse resp,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) resp;
HttpSession session = request.getSession();
Hashtable<String, String> urlNoControladas = new Hashtable<String, String>();
urlNoControladas.put("/seguridad/seleccionRol.jsf", "URL seteo roles");
urlNoControladas.put("/seguridad/cambioClave.jsf","URL cambio de clave");
urlNoControladas.put("/seguridad/noAutorizado.jsf", "URL no autorizado");
if (!urlNoControladas.containsKey(request.getServletPath())) {
SesionUsuario su = (SesionUsuario) session
.getAttribute("sesionUsuario");
Enumeration<String> nombreParametros = request.getParameterNames();
while (nombreParametros.hasMoreElements()) {
String nombreParametro = nombreParametros.nextElement();
if (!nombreParametro.equals("javax.faces.ViewState")) {
String valor = request.getParameter(nombreParametro);
if (valor.length() > 200) {
valor = valor.substring(0, 200);
}
}
} }
chain.doFilter(request, response);
}
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
}
public void destroy() {
}
public FilterConfig getFilterConfig() {
return filterConfig;
}
public void setFilterConfig(FilterConfig filterConfig) {
this.filterConfig = filterConfig;
}
}
package ec.edu.epn.seguridad.filtro;
import java.io.IOException;
import java.io.Serializable;
import java.util.Hashtable;
import java.util.Map;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import javax.faces.application.ResourceHandler;
import ec.edu.epn.seguridad.VO.SesionUsuario;
public class FiltroAutorizacion implements Filter, Serializable {
/**
*
*/
private static final long serialVersionUID = -4266992020481797282L;
/**
*
*/
private FilterConfig filterConfig;
public void doFilter(ServletRequest req, ServletResponse resp,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) resp;
HttpSession session = request.getSession();
Hashtable<String,String> urlNoControladas = new Hashtable<String,String>();
urlNoControladas.put("/seguridad/seleccionRol.jsf", "URL seteo roles");
urlNoControladas.put("/seguridad/cambioClave.jsf", "URL cambio de clave");
urlNoControladas.put("/seguridad/noAutorizado.jsf", "URL no autorizado");
urlNoControladas.put("/seguridad/cerrarSesion", "URL cierre sesion");
String uri = ((HttpServletRequest) request).getRequestURI();
if (urlNoControladas.containsKey(request.getServletPath())){
chain.doFilter(request,response);
}else{
SesionUsuario su = (SesionUsuario) session.getAttribute("sesionUsuario");
Map<String,String> opciones = su.getOpciones();
if(opciones!=null && opciones.containsKey(request.getServletPath())){
String accesos = opciones.get(request.getServletPath());
request.setAttribute(SesionUsuario.NOMBRE_VARIABLE_ACCESOS,accesos);
chain.doFilter(request,response);
}else if(uri.startsWith(request.getContextPath() + ResourceHandler.RESOURCE_IDENTIFIER) || uri.startsWith(request.getContextPath())){
chain.doFilter(request, response);
}else{
RequestDispatcher rd = request.getRequestDispatcher("/seguridad/noAutorizado.jsf");
rd.forward(request,response);
}
}
}
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig=filterConfig;
}
public void destroy() {
}
public FilterConfig getFilterConfig() {
return filterConfig;
}
}
package ec.edu.epn.seguridad.servlet;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class CerrarSesion extends HttpServlet {
private static final long serialVersionUID = -8108914910223133525L;
public void service(ServletRequest req,ServletResponse resp) {
//Obteniendo las URLs de los parmetros de contexto de web.xml
String urlAplicacion = getServletContext().getInitParameter("urlAplicacion");
String urlLogout = getServletContext().getInitParameter("urlLogout");
HttpServletRequest request = (HttpServletRequest)req;
HttpSession session = request.getSession();
HttpServletResponse response = (HttpServletResponse)resp;
session.invalidate();
try {
//Redireccionando de vuelta a la aplicacin
//una vez cerrada la sesin
response.sendRedirect(urlLogout+"?service="+urlAplicacion);
}catch(Exception e) {
e.printStackTrace();
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment