Fórumok

[RESUELTO] LF6.0.5 Actualizar variables Session en una VM template

thumbnail
Iván Rodríguez Bautista, módosítva 13 év-val korábban

[RESUELTO] LF6.0.5 Actualizar variables Session en una VM template

Regular Member Bejegyzések: 166 Csatlakozás dátuma: 2010.01.25. Legújabb bejegyzések
Hola a todos de nuevo (siento ser tan pesado últimamente, pero es que no doy una emoticon)

Mi nuevo problema es que necesito acceder a ciertas variables desde una plantilla de velocity de un contenido web propio.

Después de muchas pruebas, he conseguido que almacenar y recuperar estas variables que comento, pero después de eso ya es imposible que se actualicen. Explico el proceso.

Guardo las variables después de loguear al usuario en el LoginAction:

LoginUtil.login(
		request, response, login, password, rememberMe, authType);
		
	/* SE REGISTRA LA ENTRADA DEL USUARIO */
	try{
		System.out.println("****************************** LOGIN: " + login);
		System.out.println("****************************** PASSWORD: " + password);
			
		actionRequest.getPortletSession().setAttribute(
				"LIFERAY_SHARED_loginIntegracionUsuarioSession", login, PortletSession.APPLICATION_SCOPE);
		actionRequest.getPortletSession().setAttribute(
				"LIFERAY_SHARED_passwordIntegracionUsuarioSession", password, PortletSession.APPLICATION_SCOPE);

}catch(Exception e){.....}


Estos System.out muestran la información del usuario que acaba de loguearse perfectamente.

Después, en la plantilla vm (una propia que he creado para cierto contenido) recojo estos parámetros con este código (por cierto, utilizo esto para autologuearme por url, lo comento por si a alguien le interesa copy/pastearme):

#set ($portletSession = $request.get("portlet-session"))
#set ($enlace = "http://mi_servidor/c/portal/login?cmd=already-registered&login="+$portletSession.get("application-attributes").get("LIFERAY_SHARED_loginIntegracionUsuarioSession")+"&password="+$portletSession.get("application-attributes").get("LIFERAY_SHARED_passwordIntegracionUsuarioSession")+"&redirect=&rememberMe=false&tabs1=already-registered")


Por si el código se ve un poco mal, mediante esta línea $portletSession.get("application-attributes").get("LIFERAY_SHARED_loginIntegracionUsuarioSession") pretendo obtener la variable que he metido en session durante el action de login.

El problema es que la primera vez funciona perfectamente, pero esas variables ya no se ven actualizadas en la plantilla VM nunca más. Es como si la plantilla guardara ese valor, y ya no recuperar más las variables de session.

¿Me he explicado bien?

Espero que me podáis ayudar, no tengo mucho conocimiento de velocity y me encuentro algo perdido.

Muchas gracias de antemano a todos!
thumbnail
Iván Rodríguez Bautista, módosítva 13 év-val korábban

RE: LF6.0.5 Actualizar variables Session en una VM template

Regular Member Bejegyzések: 166 Csatlakozás dátuma: 2010.01.25. Legújabb bejegyzések
Hola de nuevo, por si a alguien le interesa comentaré la solución que he encontrado.

Como no he sido capaz de obtener las variables de sesión actualizadas en una plantilla, he recurrido a un truco desastroso, pero que me ha permitido continuar con el desarrollo.

En el action de login, guardo en request.getSession() las variables que me interesan (la sesión de la Http) y después las obtengo en un portlet que lo único que hace es almacenar estas variables en input hidden.

Este portelt lo despliego encima del visor que muestra la plantilla en la que necesito las variables. En esta plantilla lo que hago es obtener mediante javascript los "value" de los hidden, y pista.

Así que podéis llamarme marrano emoticon, pero lo que no podréis decir es que no me funciona, jaja. Los plazos de entrega hacen que no sea posible investigar un poco más y hacer las cosas bien emoticon

Un saludo a todos!
thumbnail
David García González, módosítva 12 év-val korábban

RE: LF6.0.5 Actualizar variables Session en una VM template

Regular Member Bejegyzések: 127 Csatlakozás dátuma: 2009.07.14. Legújabb bejegyzések
Hola Iván, llevo todo el día intentando hacer lo mismo que tú. El problema debe de ser que desde el contexto de la temática no podemos acceder a las variables de sesión del contexto del portlet de login.
Estoy pensando en aplicar una solución muy parecida a la tuya. Voy a incrustar el portlet de login en la página con un div oculto. Después, con jQuery copio el mensaje de error html a la zona donde lo quiero visualizar.

Por cierto, yo tengo que aplicar esta solución porque ya he sobrescrito la jsp del portlet de login para otra página. Tú si no la has sobrescrito aún podrías sobrescribirla mediante un hook.

Gracias.
thumbnail
Juan Víctor Martínez, módosítva 12 év-val korábban

RE: [RESUELTO] LF6.0.5 Actualizar variables Session en una VM template

New Member Bejegyzések: 19 Csatlakozás dátuma: 2011.03.18. Legújabb bejegyzések
Muchas gracias... Siento que tu codigo me será de mucha utilidad para actualizar unos campos que tengo por ahi pendientes. Cualquier cosa, comento en busca de ayuda xD.