Foros del Web » Programación para mayores de 30 ;) » Java »

[SOLUCIONADO] Restringir usuarios para que vean solamente lo que cada uno registra

Estas en el tema de Restringir usuarios para que vean solamente lo que cada uno registra en el foro de Java en Foros del Web. Buenas. Estoy aprendiendo java así que pido disculpas por cualquier cosa que no esté bien declarada. Estaba creando un sistema web con netbeans y postgre ...
  #1 (permalink)  
Antiguo 09/11/2015, 15:20
 
Fecha de Ingreso: octubre-2011
Mensajes: 17
Antigüedad: 12 años, 6 meses
Puntos: 0
Restringir usuarios para que vean solamente lo que cada uno registra

Buenas. Estoy aprendiendo java así que pido disculpas por cualquier cosa que no esté bien declarada. Estaba creando un sistema web con netbeans y postgre a través de algunos videotutoriales que adquirí. Todo bien separado a traves de dao, javabeans, servlets, jsp, tags, etc. En este mi sistema tengo una tabla usuarios y una tabla productos (estos nombres no son los reales, solo ejemplos para explicar mi problema aquí) donde hago a través del HttpSession el login para que el usuario tenga acceso. Tengo también un archivo jsp que me devuelve de la base de datos todos los valores de la tabla productos que he registrado. Todo funcionando a la perfección. Ahora bien, mi idea es hacer con que el usuario logueado, al momento de listar esos productos en mi archivo jsp, pueda ver solamente lo que el ha registrado y no lo que hayan registrados los demás usuarios también. Lo que ya he implementado es que al momento de hacer un registro o una modificación de un producto también se registra el nombre del usuario que ha realizado ese registro en un campo denominado usuario que hace parte de la tabla productos, o sea, tomo el nombre del usuario a través de la sesión y guardo en un campo de tipo varchar (ya que el campo usuario de la tabla usuarios es del mismo tipo) en la tabla productos.
La idea es hacer algo como una comparación entre el usuario que esté con sesión iniciada y el campo usuario de la tabla productos para entonces mostrar solo los datos correspondientes a ese mismo usuario, es posible hacerlo y en mi consulta sql llamar solo los datos que sean iguales al usuario que esté logueado?
Me imagino que tal vez sea algo simple, pero es que soy inexperiente en este mundo tan hermoso del java y me gustaría mejorar. Disculpa por el texto tan largo, espero esté bien explicado, saludos.
  #2 (permalink)  
Antiguo 09/11/2015, 17:19
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 14 años, 11 meses
Puntos: 306
Respuesta: Restringir usuarios para que vean solamente lo que cada uno registra

Hasta aquí lo que planteas es correcto.

Cita:
La idea es hacer algo como una comparación entre el usuario que esté con sesión iniciada y el campo usuario de la tabla productos para entonces mostrar solo los datos correspondientes a ese mismo usuario, es posible hacerlo y en mi consulta sql llamar solo los datos que sean iguales al usuario que esté logueado?
Lo habitual es hacer una consulta SQL donde un parámetro del where sea el usuario que hace la consulta, de esa forma recuperas sólo los productos creados por él. Como imagino que necesitarás que algún usuario(s) pueda ver todos los productos, puedes añadir más cláusulas al where

where (userparam=usuario or userparam='Admin' ...

o tener dos consultas, y que sea java quien decida a cual llamar en función del usuario/rol.

Procura usar puntos y aparte, se hace difícil leer tu texto.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #3 (permalink)  
Antiguo 10/11/2015, 05:38
 
Fecha de Ingreso: octubre-2011
Mensajes: 17
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: Restringir usuarios para que vean solamente lo que cada uno registra

Ah si, perdón por el texto todo encimado. Gracias por la respuesta.
Bueno, mi duda está en como puedo obtener el usuario logueado y compararlo al campo de mi tabla productos?

Tengo una servlet donde hago todo el proceso para conectar a la base de datos y comparar con la tabla usuarios para realizar el login, pero ahora quiero hacer la comparación dentro de una servlet de productos y pasarla por parámetro a mi consulta, que se encuentra en un archivo dao que lo utilizo tanto para listar, modificar, eliminar o realizar algún registro de mi tabla productos.

Como hago para para obtener el valor del usuario logueado, convertirlo a String para entonces pasarlo por parámetro a mi función que listar?

A ver si puedo dar un ejemplo:

En mi servlet de productos tengo:

Código PHP:
String orden request.getParameter("orden");
                if (
orden == null) {
                    
orden "pro_codigo";
                } 
luego paso esa variable a mi dao :

Código PHP:
List listaProductos productoDao.getListaProductos(orden); 
Y en mi dao algo así:

Código PHP:
public List getListaProductos(String orden
Y la utilizo para determinar una orden en mi lista de productos que traeré desde la base de datos en un archivo jsp.

En realidad paso más parámetros, pero solo pongo este de orden como ejemplo. Lo que quiero es que me ayuden a pasar el usuario logueado a mi dao para en mi consulta poner algo como:

where pro_usuario = param_pasado

Donde en:

pro_usuario ya está archivado el nombre del usuario que hizo el registro.
param_pasado contenga el usuario que esté logueado en ese mismo momento.

No se si me explico bien, pero esa es la idea, como lo hago?
  #4 (permalink)  
Antiguo 10/11/2015, 08:09
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 14 años, 11 meses
Puntos: 306
Respuesta: Restringir usuarios para que vean solamente lo que cada uno registra

http://www.arquitecturajava.com/usan...icaciones-web/
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #5 (permalink)  
Antiguo 10/11/2015, 12:04
 
Fecha de Ingreso: octubre-2011
Mensajes: 17
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: Restringir usuarios para que vean solamente lo que cada uno registra

Gracias Xerelo

Leyendo el artículo del link ya lo he hecho funcionar.

En mi servlet de productos he hecho lo siguiente:

Código PHP:
HttpSession session request.getSession(true);
String usuariolog = (String)session.getAttribute("seccionUsuario"); 
Pasé esa variable usuariolog a mi lista que hace la consulta sql e hice la comparación con mi variable que contenía el usuario guardado dentro de la tabla productos.

Ahora cada usuario puede listar solamente lo que ha sido registrado por el.


Etiquetas: cada, jsp, netbeans, restringir, solamente, sql, usuarios, valor
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:43.