Forums

Home » Liferay Portal » Español » 3. Desarrollo

Combination View Flat View Tree View
Threads [ Previous | Next ]
toggle
Luis Perez
Obtener datos de usuario logueado para usar en el código de un portlet
January 10, 2012 7:27 PM
Answer

Luis Perez

Rank: New Member

Posts: 1

Join Date: January 10, 2012

Recent Posts

Saludos, desearía saber qué funciones del api de Liferay debo utilizar para poder, desde el código fuente de mi portlet, conocer datos relacionados al usuario logueado en el portal( tales como su cuenta en liferay, id, etc).

Como dato adicional, estoy usando portlets generados con Openxava, los cuales siguen el estándar JSR-168. Si alguien ha obtenido la solución específicamente para los portlets generados con este framework, sería mucho mas rápido dar con la respuesta que busco.

Muchas gracias de antemano.
Manuel de la Peña
RE: Obtener datos de usuario logueado para usar en el código de un portlet
February 8, 2012 1:16 AM
Answer

Manuel de la Peña

LIFERAY STAFF

Rank: Junior Member

Posts: 45

Join Date: July 6, 2011

Recent Posts

Hola Luis.

Desconozco el framework que utilizas, pero desde tu código deberías tener acceso al ThemeDisplay para acceder al usuario logado, ya que se encuentra en un JAR en el servidor (TOMCAT_DIR/lib/ext/portal-servcice.jar)

1User user = themeDisplay.getUser();

Un saludo, Manuel
Mikel Goikoetxea
RE: Obtener datos de usuario logueado para usar en el código de un portlet
March 1, 2012 7:35 AM
Answer

Mikel Goikoetxea

Rank: Junior Member

Posts: 56

Join Date: March 16, 2010

Recent Posts

Buenas,

En princpio con el siguiente código debería funcionar:

1ThemeDisplay themeDisplay = (ThemeDisplay) renderRequest.getAttribute(WebKeys.THEME_DISPLAY);
2themeDisplay.getUser();

Un saludo,

Mikel Goikoetxea Bilbao (@mgoibil)
B2B 2000
Gerardo Santamaria Boza
RE: Obtener datos de usuario logueado para usar en el código de un portlet
March 2, 2012 7:48 AM
Answer

Gerardo Santamaria Boza

Rank: Regular Member

Posts: 143

Join Date: January 17, 2012

Recent Posts

buenas compañero , deseo preguntarte si este codigo lo deberia de usar dentro de el codigo JAVA
Gerardo Santamaria Boza
RE: Obtener datos de usuario logueado para usar en el código de un portlet
March 2, 2012 9:26 AM
Answer

Gerardo Santamaria Boza

Rank: Regular Member

Posts: 143

Join Date: January 17, 2012

Recent Posts

yo lo logre de la siguiente manera


FacesContext context = FacesContext.getCurrentInstance();
PortletRequest portletRequest = (PortletRequest) context.getExternalContext().getRequest();

themeDisplay = (ThemeDisplay) portletRequest.getAttribute(WebKeys.THEME_DISPLAY);
user = themeDisplay.getUser();

el user nos da una hilera con todo los datos del usuario y de ahi escojo lo que quiero
la libreria la cargue de la siguiente manera

<dependency>
<groupId>com.liferay.portal</groupId>
<artifactId>portal-service</artifactId>
<version>6.1.0</version>

</dependency>

este jar se encuentra en directorio de glassfish3.1/domain/domain/>portal-service
Mikel Goikoetxea
RE: Obtener datos de usuario logueado para usar en el código de un portlet
March 3, 2012 12:34 AM
Answer

Mikel Goikoetxea

Rank: Junior Member

Posts: 56

Join Date: March 16, 2010

Recent Posts

Buenas Gerardo,

Eso es, es código JAVA.
De todos modos lo puedes utilizar tanto en una clase como en una JSP de la siguiente forma:

1<% AQUI TU CODIGO JAVA%>

Un saludo,

Mikel Goikoetxea Bilbao (@mgoibil)
B2B 2000
Gerardo Santamaria Boza
RE: Obtener datos de usuario logueado para usar en el código de un portlet
March 5, 2012 6:25 AM
Answer

Gerardo Santamaria Boza

Rank: Regular Member

Posts: 143

Join Date: January 17, 2012

Recent Posts

Gracias por tu respuesta
Roberto S
RE: Obtener datos de usuario logueado para usar en el código de un portlet
March 29, 2012 1:24 AM
Answer

Roberto S

Rank: Junior Member

Posts: 45

Join Date: March 7, 2012

Recent Posts

Buenas Mikel,

Tengo una pregunta, he intentado poner el codigo que dices :
ThemeDisplay themeDisplay = (ThemeDisplay) renderRequest.getAttribute(WebKeys.THEME_DISPLAY);
themeDisplay.getUser();
entre las etiquetas <% %>
Pero me da error me dice que ThemeDisplay "cannot be resolved to a type". Supongo que debo de incluir alguna libreria en el JSP, pero cual y como???

Un saludo y Gracias!!!
Roberto S
RE: Obtener datos de usuario logueado para usar en el código de un portlet
March 29, 2012 9:28 AM
Answer

Roberto S

Rank: Junior Member

Posts: 45

Join Date: March 7, 2012

Recent Posts

Vale ya lo he conseguido, he puesto <theme:defineObjects /> en el JSP, y ahora ya puedo acceder por ejemplo a los datos del usuario que esta registrado.
Pero ahora tengo otra pregunta, ¿Como puedo acceder al resto de información que esta en la base de datos, como por ejemplo contenidos es decir algún tipo de noticia?

Un saludo.
Mikel Goikoetxea
RE: Obtener datos de usuario logueado para usar en el código de un portlet
March 30, 2012 12:17 AM
Answer

Mikel Goikoetxea

Rank: Junior Member

Posts: 56

Join Date: March 16, 2010

Recent Posts

Hola Robert,

Para eso tenemos los servicios de Liferay.
Echale un vistazo a los siguientes servicios que seguro que te sirven:
  • JournalArticleLocalServiceUtil
  • JournalContentSearchLocalServiceUtil

Ya nos comentarás que tal te ha ido.

Un saludo,

Mikel Goikoetxea Bilbao (@mgoibil)
B2B 2000
Roberto S
RE: Obtener datos de usuario logueado para usar en el código de un portlet
March 30, 2012 1:31 AM
Answer

Roberto S

Rank: Junior Member

Posts: 45

Join Date: March 7, 2012

Recent Posts

Hola buenos días,
Primero darte las gracias por contestar, estoy utilizando lo que me dices tengo esto:
JournalArticle noticia=JournalArticleLocalServiceUtil.getLatestArticle(groupId, articleId);
Estoy incluyendo los valores a pelo para hacer pruebas,
long groupId=10157;
String articleId="10461";
Pero al ir a la web y ver la página me sale que el “portlet is temporarily unavailable
Otra cosa ahora estoy poniendo los valores a pelo, pero como puedo recoger los valores de groupId y los de articleId.??
Muchas gracias, un saludo.
Mikel Goikoetxea
RE: Obtener datos de usuario logueado para usar en el código de un portlet
March 30, 2012 1:57 AM
Answer

Mikel Goikoetxea

Rank: Junior Member

Posts: 56

Join Date: March 16, 2010

Recent Posts

El groupId lo puedes obtener de la siguiente forma:
1ThemeDisplay themeDisplay = (ThemeDisplay) renderRequest.getAttribute(WebKeys.THEME_DISPLAY);
2themeDisplay.getScopeGroupId();

En cuanto al articleId lo mejor sería añadirlo en el "portlet.properties" en WEB-INF/src:
1articleId=10461

Y luego cogerlo en la clase Java:
1long articleId=Long.parseLong(PortletProps.get("articleId"));

El error que te está dando no te puedo decir exactamente a qué se debe, lo mejor sería poner un punto de ruptura e ir paso a paso para ver en qué punto casca exactamente. Por otra parte, también te puedes fijar en la traza del error en el log o en la consola del Tomcat.

Un saludo,

Mikel Goikoetxea Bilbao (@mgoibil)
B2B 2000