entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

Menu diferenciado con un Scriplet

Tengo que hacer una pagina que contenga diferentes opciones deacuerdo al tipo de usuario que ingrese; con una variable de sesion tengo ese dato y estoy intentado usar un scriplet para imprimir opciones diferenciadas de la siguiente manera

<%
out.println("<div class='collapse navbar-collapse navbar-ex1-collapse'>");
out.println("<ul id='active' class='nav navbar-nav side-nav'>");
switch( (Integer) session.getAttribute("TipoUsuario")  )
     {
        case 1://Administrador

out.println("<li class='dropdown user-dropdown'>");
out.println("<a href='#' class='dropdown-toggle' data-toggle='dropdown'>");
out.println("<i class='fa fa-table'></i>Asignaciones<b class='caret'></b></a>");
out.println("<ul class='dropdown-menu'>");
out.println("<li><a href='asignacionLaboratorios_Curso.jsp'><i class=''></i>Laboratorio asignando curso</a></li>");
out.println("</ul>");
out.println("</li>");

out.println("<li class='dropdown user-dropdown'>");
out.println("<a href='#' class='dropdown-toggle' data-toggle='dropdown'>");
out.println("<i class='fa fa-gear'></i>Mantenimientos<b class='caret'></b></a>");
out.println("<ul class='dropdown-menu'>");
out.println("<li><a href='registraUsuarios.jsp'><i class=''></i>Usuarios</a></li>");
out.println("<li><a href='registroLaboratorio.jsp'><i class=''></i>Laboratorios</a></li>");
out.println("<li><a href='registraMaquina.jsp'><i class=''></i>Equipos</a></li>");
out.println("<li><a href='registraHorario.jsp'><i class=''></i>Horario</a></li>");
out.println("<li><a href='registraCicloLectivo.jsp'><i class=''></i>Ciclo Lectivo</a></li>");
out.println("</ul>");
out.println("</li>");

out.println("<li class='dropdown user-dropdown'>");
out.println("<a href='#' class='dropdown-toggle' data-toggle='dropdown'>");
out.println("<i class='fa fa-list-ol'></i>Reportes<b class='caret'></b></a>");
out.println("<ul class='dropdown-menu'>");
out.println("<li><a href='#' onclick='abrirVentana('Reportes/prestamoLaboratorio.xlsx', 'SAUTL', 1000, 758, 'yes')' target='_self' role='button'><i class=''></i>Prestamo de laboratorio</a></li>");
out.println("<li><a href='#' onclick='abrirVentana('Reportes/reporteErrores.xlsx', 'SAUTL', 1000, 758, 'yes')' target = '_self' role='button'><i class=''></i>Problemas de equipo</a></li>");
out.println("<li><a href='#' onclick='abrirVentana('Reportes/catalogosUsuarios.xlsx', 'SAUTL', 1000, 758, 'yes')' target='_self' role='button'><i class=''></i>Catalagos de Usuarios</a></li>");
out.println("<li><a href='#' onclick='abrirVentana('Reportes/catalogosLaboratorio.xlsx', 'SAUTL', 1000, 758, 'yes')' target='_self' role='button'><i class=''></i>Catalagos de Laboratorios</a></li>");
out.println("<li><a href='#' onclick='abrirVentana('Reportes/catalogosEquipos.xlsx', 'SAUTL', 1000, 758, 'yes')' target='_self' role='button'><i class=''></i>Catalagos de Equipos</a></li>");
out.println("<li><a href='#' onclick='abrirVentana('Reportes/catalogosHorario.xlsx', 'SAUTL', 1000, 758, 'yes')' target='_self' role='button'><i class=''></i>Catalagos de Horarios</a></li>");
out.println("<li><a href='#' onclick='abrirVentana('Reportes/catalogosCicloLevtivo.xlsx', 'SAUTL', 1000, 758, 'yes')' target='_self' role='button'><i class=''></i>Catalagos de Ciclo Lectivo</a></li>");
out.println("</ul>");
out.println("</li>");

        break;

    case 2://Asistente

out.println("<li class='dropdown user-dropdown'>");
out.println("<a href='#' class='dropdown-toggle' data-toggle='dropdown'>");
out.println("<i class='fa fa-gear'></i>Mantenimientos<b class='caret'></b></a>");
out.println("<ul class='dropdown-menu'>");
out.println("<li><a href='registraUsuarios.jsp'><i class=''></i>Usuarios</a></li>");
out.println("</ul>");
out.println("</li>");

        break;

    case 3://Profesor

out.println("<li><a href='reportarErrores.jsp'><i class='fa fa-tasks'></i>Reportar errores</a></li>");

out.println("<li class='dropdown user-dropdown'>");
out.println("<a href='#' class='dropdown-toggle' data-toggle='dropdown'>");
out.println("<i class='fa fa-archive'></i>Reservaciones<b class='caret'></b></a>");
out.println("<ul class='dropdown-menu'>");
out.println("<li><a href='reservacionLaboratorioProfesores.jsp'><i class=''></i>Laboratorios</a></li>");
out.println("</ul>");
out.println("</li>");

    break;

    case 4://Estudiante
out.println("<li><a href='reportarErrores.jsp'><i class='fa fa-tasks'></i>Reportar errores</a></li>");

out.println("<li class='dropdown user-dropdown'>");
out.println("<a href='#' class='dropdown-toggle' data-toggle='dropdown'>");
out.println("<i class='fa fa-table'></i>Asignaciones<b class='caret'></b></a>");
out.println("<ul class='dropdown-menu'>");
out.println("<li><a href='asignacionMaquina.jsp'><i class=''></i>Asignar Máquinas</a></li>");
out.println("</ul>");
out.println("</li>");

out.println("<li class='dropdown user-dropdown'>");
out.println("<a href='#' class='dropdown-toggle' data-toggle='dropdown'>");
out.println("<i class='fa fa-archive'></i>Reservaciones<b class='caret'></b></a>");
out.println("<ul class='dropdown-menu'>");
out.println("<li><a href='reservacionEquipo.jsp'><i class=''></i>Equipos</a></li>");
out.println("</ul>");
out.println("</li>");

    break;

        default:

        break;
      }
out.println("</ul>");
out.println("<ul class='nav navbar-nav navbar-right navbar-user'>");
out.println("<li class='dropdown messages-dropdown'>");
out.println("<a href='#' class='' data-toggle=''><i class=''></i><span class=''></span><b class=''></b></a>");
out.println("<ul class='dropdown-menu'>");
out.println("<li class='dropdown-header'></li>");
out.println("<li class='message-preview'>");
out.println("<a href='#'><span class='avatar'><i class=''></i></span><span class='message'></span></a>");
out.println("</li>");
out.println("<li class='divider'></li>");
out.println("<li class='message-preview'><a href='#'><span class='avatar'><i class=''></i></span><span class='message'></span></a></li>");
out.println("<li class='divider'></li>");
out.println("<li><a href='#'><span class='badge'></span></a></li>");
out.println("</ul>");
out.println("</li>");
out.println("<li class='dropdown user-dropdown'>");
out.println("<a href='#' class='dropdown-toggle' data-toggle='dropdown'><i class='fa fa-user'></i>");
out.println(session.getAttribute("Nombre"));
out.println("<b class='caret'></b></a>");
out.println("<ul class='dropdown-menu'>");
out.println("<li><a href='inicio.jsp'><i class='fa fa-power-off'></i>Cerrar Sesión</a></li>");
out.println("</ul>");
out.println("</li>");
out.println("<li class='divider-vertical'></li>");
out.println("</ul>");
out.println("</div>");
%>

Cual es la manera correcta de evaluar e imprimir el menu en este caso?

1 Respuesta

2votos

FelipeMedel Puntos7400

hay varias formas de evaluar este tipo de cosas en una aplicación, normalmente una de las opciones mas sencillas, vendría siendo, que tengas una tabla en tu base de datos donde almacenes las opciones y un tipo de usuario, esto te permitiría evaluar las opciones por el rol o el tipo de usuario que tiene, ya con eso solo validas que el usuario este logueado y por ende con su rol o tipo de usuario, obtienes las opciones que ese usuario tendrá.

2votos

lfmd comentado

normalmente una opción para este tipo de validaciones, es manejar ciertos permisos dependiendo los roles, y recorrer los permisos que ente caso serian las opciones del menú con un ciclo, de esta manera como dice @FelipeMedel cada usuario tendra las opciones que le correspondan al rol y a los permisos que tenga, es muy efectivo ya que puedes crear mas roles y la unico que cambia o varia, es que podrías agregarle permisos diferentes para cada rol o tipo de usuario que crees... en conclusión, evitas escribir toda esa cantidad de código... saludos...

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta