26 de marzo de 2016

:: Liferay. Comprobar si estamos logueados

A veces necesitamos saber si el usuario está o no logueado para aplicar una u otra opción en una plantilla Velocity. Para ello, podemos utilizar el código siguiente:

#set ($themeDisplay = $httpServletRequest.getAttribute("THEME_DISPLAY"))
$themeDisplay.isSignedIn()
Los pasos a seguir para crear una prueba de concepto son los descritos a continuación:
1.- Creamos una estructura sencilla
< ?xml version="1.0"? >
< root >
    < dynamic-element name="titulo" type="text" index-type="" repeatable="false"/ >
    < dynamic-element name="texto" type="text_box" index-type="" repeatable="false"/ >
< /root >

2.- Creamos una plantilla asociada que nos mostrará un mensaje si estamos logueados, y otro distinto en caso contrario
#set($serviceContext = $portal.getClass().forName("com.liferay.portal.service.ServiceContextThreadLocal").getServiceContext())
#set($httpServletRequest = $serviceContext.getRequest())
#set($themeDisplay = $httpServletRequest.getAttribute("THEME_DISPLAY"))
< div >
    $titulo.data

    $texto.data

    #if($themeDisplay.isSignedIn())
        El usuario está logueado

    #else
        El usuario no está logueado

    #end
< /div >

3.- Añadimos un contenido del nuevo tipo de datos definido (estructura)

4.- En una página insertamos un publicador de contenidos que muestre esta información

5.- Estando des-logueados comprobamos el mensaje que se muestra

6.- Estando loguegados comprobamos que el mensaje mostrado es el que corresponde

Una tarea sencilla que puede ser de utilidad y que muchas veces no recordamos cómo se hace.

No hay comentarios:

Publicar un comentario

Déjanos tu comentario

:: Liferay. Script para ir al inicio de la página

En diversos temas de apariencia es necesario contar un enlace que permita al usuario realizar un scroll al inicio de la página. Este comport...