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. Obtener los usuarios activos desde Groovy

Una solución rápida para obtener la relación de usuarios activos en Liferay 7.4 es por medio de un script en Groovy. Para ello accederemos a...