Vista combinada Visión Plana Vista de árbol
Discusiones [ Anterior | Siguiente ]
toggle
Luis Perez
Obtener datos de usuario logueado para usar en el código de un portlet
10 de enero de 2012 19:27
Respuesta

Luis Perez

Ranking: New Member

Mensajes: 1

Fecha de incorporación: 10 de enero de 2012

Mensajes recientes

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
8 de febrero de 2012 1:16
Respuesta

Manuel de la Peña

LIFERAY STAFF

Ranking: Junior Member

Mensajes: 37

Fecha de incorporación: 6 de julio de 2011

Mensajes recientes

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
1 de marzo de 2012 7:35
Respuesta

Mikel Goikoetxea

Ranking: Junior Member

Mensajes: 55

Fecha de incorporación: 16 de marzo de 2010

Mensajes recientes

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
2 de marzo de 2012 7:48
Respuesta

Gerardo Santamaria Boza

Ranking: Regular Member

Mensajes: 143

Fecha de incorporación: 17 de enero de 2012

Mensajes recientes

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
2 de marzo de 2012 9:26
Respuesta

Gerardo Santamaria Boza

Ranking: Regular Member

Mensajes: 143

Fecha de incorporación: 17 de enero de 2012

Mensajes recientes

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
3 de marzo de 2012 0:34
Respuesta

Mikel Goikoetxea

Ranking: Junior Member

Mensajes: 55

Fecha de incorporación: 16 de marzo de 2010

Mensajes recientes

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
5 de marzo de 2012 6:25
Respuesta

Gerardo Santamaria Boza

Ranking: Regular Member

Mensajes: 143

Fecha de incorporación: 17 de enero de 2012

Mensajes recientes

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

Roberto S

Ranking: Junior Member

Mensajes: 42

Fecha de incorporación: 7 de marzo de 2012

Mensajes recientes

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
29 de marzo de 2012 9:28
Respuesta

Roberto S

Ranking: Junior Member

Mensajes: 42

Fecha de incorporación: 7 de marzo de 2012

Mensajes recientes

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
30 de marzo de 2012 0:17
Respuesta

Mikel Goikoetxea

Ranking: Junior Member

Mensajes: 55

Fecha de incorporación: 16 de marzo de 2010

Mensajes recientes

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
30 de marzo de 2012 1:31
Respuesta

Roberto S

Ranking: Junior Member

Mensajes: 42

Fecha de incorporación: 7 de marzo de 2012

Mensajes recientes

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
30 de marzo de 2012 1:57
Respuesta

Mikel Goikoetxea

Ranking: Junior Member

Mensajes: 55

Fecha de incorporación: 16 de marzo de 2010

Mensajes recientes

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