%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%@page
import="conexion.*"
import="java.sql.*"
import="general.Config"
import="general.Permisos"
import="own.codec.*"
%>
Desplegar Usuarios del Sistema
<%
/****** Despliega la lista de usuarios del sistema filtrados por el texto de búsqueda de buscar_usuarios.jsp (no obligatorio)***********/
/********************************************creado por: L.I. Salvador Díaz Parra*******************************************************/
out.println(" ");
String nompag[] = request.getRequestURI().split("/");
%>
<%
Conexion c = null;
Connection lcnt_con = null;
ResultSet lrs_res = null;
Statement lst_stm = null;
String ls_query = new String("");
String emergent_error = new String("");
boolean lb_connection = false;
String debug = new String("si");
String columna_ordenada = new String("");
String patron_busqueda = new String("");
String patron_enviar = new String("");
String tipo_enviar = new String("");
String tipo_busqueda = new String("");
String desc = new String("");
String usuarios_encontrados = new String("no");
boolean permiso_agregar = false;
boolean permiso_editar = false;
boolean permiso_eliminar = false;
boolean permiso_bitacora = false;
boolean permiso_privilegioos = false;
// Conexión a la base de datos
try {
if (!Config.getParametro("debug").equals("si")) {
debug = "no";
}
c = new Conexion();
lcnt_con = c.getConnection();
lst_stm = lcnt_con.createStatement();
lb_connection = true;
} catch (Exception e) {
emergent_error = "Error al conectarse a la base de datos ";
if (debug.equals("si")) {
emergent_error += e;
}
lb_connection = false;
}
// Intentando recuperar valor de columna ordenada
try {
columna_ordenada = request.getParameter("columna_ordenada").toString();
} catch (Exception e) {
columna_ordenada = "nombre";
}
// Intentando recuperar valor de patrón de búsqueda
try {
tipo_busqueda = "id_usuarios != 0 AND (usuarios.status='a' or usuarios.status='x')";
if (request.getParameter("tipo_busqueda") != null) {
if (request.getParameter("tipo_busqueda").equals("a")) {
tipo_busqueda = "id_usuarios != 0 AND (usuarios.status='a' or usuarios.status='x')";
tipo_enviar += "tipo_busqueda=a&";
} else if (request.getParameter("tipo_busqueda").equals("i")) {
tipo_busqueda = "id_usuarios != 0 AND usuarios.status='i'";
tipo_enviar += "tipo_busqueda=i&";
} else {
tipo_busqueda = "id_usuarios != 0 AND (usuarios.status='a' or usuarios.status='x' or usuarios.status='i')";
tipo_enviar += "tipo_busqueda=b&";
}
}
patron_busqueda = request.getParameter("patron_busqueda").replace('\'', '"');
patron_enviar = "&patron_busqueda=" + request.getParameter("patron_busqueda").toString();
patron_enviar = patron_enviar.replace('á', 'a').replace('é', 'e').replace('í', 'i').replace('ó', 'o').replace('ú', 'u').replace('Á', 'A').replace('É', 'E').replace('Í', 'I').replace('Ó', 'O').replace('Ú', 'U');
if (!patron_busqueda.contains("%") || !patron_busqueda.contains("?")) {
patron_busqueda = "WHERE " + tipo_busqueda + " AND (CONCAT(usuarios.nombre_real, ' ', materno, ' ', paterno) LIKE '%" + patron_busqueda + "%' OR "
+ "CONCAT(materno, ' ', paterno, ' ', usuarios.nombre_real) LIKE '%" + patron_busqueda + "%' OR CONCAT(materno, ' ', paterno) LIKE '%" + patron_busqueda + "%' "
+ "OR CONCAT(usuarios.nombre_real, ' ', materno) LIKE '%" + patron_busqueda + "%' OR CONCAT(usuarios.nombre_real, ' ', paterno, ' ', materno) LIKE"
+ " '%" + patron_busqueda + "%' OR CONCAT(paterno, ' ', usuarios.nombre_real) LIKE '%" + patron_busqueda + "%' OR "
+ "CONCAT(paterno, ' ', materno, ' ', usuarios.nombre_real) LIKE '%" + patron_busqueda + "%' OR nombre_usuario LIKE '%" + patron_busqueda + "%' "
+ "OR email LIKE '%" + patron_busqueda + "%' OR cat_perfiles.nombre LIKE '%" + patron_busqueda + "%') ";
} else {
patron_busqueda = "WHERE " + tipo_busqueda + " AND (CONCAT(usuarios.nombre_real, ' ', materno, ' ', paterno) LIKE '" + patron_busqueda + "' OR "
+ "CONCAT(materno, ' ', paterno, ' ', usuarios.nombre_real) LIKE '" + patron_busqueda + "' OR CONCAT(materno, ' ', paterno) LIKE '" + patron_busqueda + "' "
+ "OR CONCAT(usuarios.nombre_real, ' ', materno) LIKE '" + patron_busqueda + "' OR CONCAT(usuarios.nombre_real, ' ', paterno, ' ', materno) LIKE "
+ "'" + patron_busqueda + "' OR CONCAT(paterno, ' ', usuarios.nombre_real) LIKE '" + patron_busqueda + "' OR "
+ "CONCAT(paterno, ' ', materno, ' ', usuarios.nombre_real) LIKE '" + patron_busqueda + "' OR nombre_usuario LIKE '" + patron_busqueda + "' "
+ "OR email LIKE '" + patron_busqueda + "' OR cat_perfiles.nombre LIKE '" + patron_busqueda + "') ";
}
} catch (Exception e) {
patron_enviar = "";
tipo_enviar = "";
patron_busqueda = " WHERE " + tipo_busqueda;
}
// Intentando recuperar valor de descendente
try {
desc = request.getParameter("desc").toString();
if (desc.equals("desc")) {
desc = " DESC";
} else {
desc = " ASC";
}
} catch (Exception e) {
desc = " ASC ";
}
//********* Validación fundamental para evitar ejecución de código sin privilegios suficientes **********//
try {
if (!Permisos.PermisoModulo(nompag[nompag.length - 1].toString(), Integer.parseInt(session.getAttribute("id_user").toString()))) {
if (lb_connection) {
lst_stm.close();
lcnt_con.close();
}
emergent_error += " Privilegios insuficientes. ";
lb_connection = false;
}
} catch (Exception e) {
emergent_error += " Privilegios insuficientes. ";
if (debug.equals("si")) {
emergent_error += "Trace: " + e.toString();
}
lb_connection = false;
}
//*******************************************************************************************************//
if (lb_connection) {
permiso_agregar = Permisos.PermisoModulo("frm_agregar_usuario_sistema.jsp", Integer.parseInt(session.getAttribute("id_user").toString()));
permiso_editar = Permisos.PermisoModulo("frm_modificar_usuario_sistema.jsp", Integer.parseInt(session.getAttribute("id_user").toString()));
permiso_eliminar = Permisos.PermisoModulo("desp_desactivar_usuario_sistema.jsp", Integer.parseInt(session.getAttribute("id_user").toString()));
permiso_bitacora = Permisos.PermisoModulo("index_registro_actividades_PRINC_NOSIB.jsp", Integer.parseInt(session.getAttribute("id_user").toString()));
permiso_privilegioos = Permisos.PermisoModulo("frm_privilegios_especiales.jsp", Integer.parseInt(session.getAttribute("id_user").toString()));
%>
Relación de Usuarios del Sistema
<%
try {
if (!patron_enviar.equals("")) {
out.println(" conteniendo '" + patron_enviar.substring(17) + "'");
}
} catch (Exception e) {
emergent_error = "Error desplegar patron de búsqueda ";
if (debug.equals("si")) {
emergent_error += e;
}
}
%>
<%
//Intentando recuperar variable de sesión para mensajes pendientes
try {
String mensaje_pendiente = session.getAttribute("mensaje_pendiente").toString();
%>
<%=mensaje_pendiente%>
<%
session.removeAttribute("mensaje_pendiente");
} catch (Exception e) {
}
%>
class="headerSortDown" <%}%>
onclick="javascript:window.location='desp_mostrar_usuarios_PRINC.jsp?columna_ordenada=nombre<%=tipo_enviar + patron_enviar%><%if (columna_ordenada.equals("nombre") && desc.equals(" ASC ")) {%>&desc=desc'" title="Ordenar inverso<%} else {%>'" title="Ordenar<%}%> por Nombre Real del Usuario">Nombre Real del Usuario
class="headerSortDown" <%}%>
onclick="javascript:window.location='desp_mostrar_usuarios_PRINC.jsp?columna_ordenada=nombre_usuario<%=tipo_enviar + patron_enviar%><%if (columna_ordenada.equals("nombre_usuario") && desc.equals(" ASC ")) {%>&desc=desc'" title="Ordenar inverso<%} else {%>'" title="Ordenar<%}%> por Nombre de Usuario">Nombre de Usuario
class="headerSortDown" <%}%>
onclick="javascript:window.location='desp_mostrar_usuarios_PRINC.jsp?columna_ordenada=perfil<%=tipo_enviar + patron_enviar%><%if (columna_ordenada.equals("perfil") && desc.equals(" ASC ")) {%>&desc=desc'" title="Ordenar inverso<%} else {%>'" title="Ordenar<%}%> por Perfil">Perfil
class="headerSortDown" <%}%>
onclick="javascript:window.location='desp_mostrar_usuarios_PRINC.jsp?columna_ordenada=nombre_area<%=tipo_enviar + patron_enviar%><%if (columna_ordenada.equals("nombre_area") && desc.equals(" ASC ")) {%>&desc=desc'" title="Ordenar inverso<%} else {%>'" title="Ordenar<%}%> por Dependencia Estatal">Área
<%
if (permiso_editar) {
%>
Modificar
<% }
if (permiso_privilegioos) {
%>
Priv. Esp.
<% }
if (permiso_eliminar) {
%>
Status
<%}%>
<%
//Obtención de los usuarios del sistema solicitados
try {
ls_query = "SELECT "
+ " DISTINCT CONCAT(paterno, ' ', materno, ' ', usuarios.nombre_real) as nombre, "
+ " nombre_usuario, "
+ " cat_perfiles.nombre as perfil, "
+ " id_usuarios, "
+ " usuarios.status as status, "
+ " CONCAT(cat_areas.clave_area, CONCAT(' ',cat_areas.nombre)) as nombre_area "
+ "FROM usuarios "
+ "JOIN rel_usuarios_perfil USING (id_usuarios) "
+ "JOIN rel_perfiles_modulos USING (id_rel_perfiles_modulos) "
+ "JOIN cat_perfiles USING (id_rel_perfiles_modulos) "
+ "JOIN cat_areas USING (id_area)" + patron_busqueda + "ORDER BY " + columna_ordenada + desc + ";";
lrs_res = lst_stm.executeQuery(ls_query);
while (lrs_res.next()) {
usuarios_encontrados = "si";
%>
<%=lrs_res.getString("nombre")%>
<%=lrs_res.getString("nombre_usuario")%>
<%=lrs_res.getString("perfil")%>
<%=lrs_res.getString("nombre_area").equals("0") ? "No Asignada" : lrs_res.getString("nombre_area")%>
<%
if (permiso_eliminar) {
%>
"> (<%=lrs_res.getString("nombre")%>)" />
<%}
if (permiso_privilegioos) {
%>
"> (<%=lrs_res.getString("nombre")%>)" />
<%
}
if (permiso_eliminar) {
if (lrs_res.getString("status").equals("a")) {
%>
" />
<%
} else {
%>
" />
<%
}
}
%>
<%
}
} catch (Exception e) {
emergent_error = "Error al recuperar lista de usuarios del sistema ";
if (debug.equals("si")) {
emergent_error += e + " Query actual: " + ls_query;
}
%>
<%=emergent_error%>
<%
} finally {
lst_stm.close();
lcnt_con.close();
}
%>
<%
if (usuarios_encontrados.equals("no")) {
%>
<%=(patron_enviar == "" ? "No hay usuarios registrados" : "No se encontraron usuarios que contengan '" + patron_enviar.substring(17)) + "'"%>
<%
}
} else {
%>
<%=emergent_error%>
<%
}
//Registrar en la bitácora
try {
String mensaje_log = new String("");
if (patron_enviar.equals("")) {
mensaje_log = "Usuario -" + session.getAttribute("username").toString() + "- desplegó lista de usuarios del sistema;";
} else {
mensaje_log = "Usuario -" + session.getAttribute("username").toString() + "- realizó búsqueda de usuarios con patrón -" + patron_enviar.substring(17) + "-;";
}
Config.GuardarLog(Integer.parseInt(session.getAttribute("id_user").toString()), mensaje_log, 3);
} catch (Exception e) {
}
%>