フォーラム

ホーム » Liferay Portal » Español » 3. Desarrollo

構造的に表示 平面上に表示 ツリー上に表示
スレッド [ 前へ | 次へ ]
toggle
Luis Perez
Obtener datos de usuario logueado para usar en el código de un portlet
2012/01/10 19:27
答え

Luis Perez

ランク: New Member

投稿: 1

参加年月日: 2012/01/10

最近の投稿

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
2012/02/08 1:16
答え

Manuel de la Peña

LIFERAY STAFF

ランク: Junior Member

投稿: 55

参加年月日: 2011/07/06

最近の投稿

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
2012/03/01 7:35
答え

Mikel Goikoetxea

ランク: Junior Member

投稿: 56

参加年月日: 2010/03/16

最近の投稿

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
2012/03/02 7:48
答え

Gerardo Santamaria Boza

ランク: Regular Member

投稿: 143

参加年月日: 2012/01/17

最近の投稿

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
2012/03/02 9:26
答え

Gerardo Santamaria Boza

ランク: Regular Member

投稿: 143

参加年月日: 2012/01/17

最近の投稿

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
2012/03/03 0:34
答え

Mikel Goikoetxea

ランク: Junior Member

投稿: 56

参加年月日: 2010/03/16

最近の投稿

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
2012/03/05 6:25
答え

Gerardo Santamaria Boza

ランク: Regular Member

投稿: 143

参加年月日: 2012/01/17

最近の投稿

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

Roberto S

ランク: Junior Member

投稿: 45

参加年月日: 2012/03/07

最近の投稿

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
2012/03/29 9:28
答え

Roberto S

ランク: Junior Member

投稿: 45

参加年月日: 2012/03/07

最近の投稿

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
2012/03/30 0:17
答え

Mikel Goikoetxea

ランク: Junior Member

投稿: 56

参加年月日: 2010/03/16

最近の投稿

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
2012/03/30 1:31
答え

Roberto S

ランク: Junior Member

投稿: 45

参加年月日: 2012/03/07

最近の投稿

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
2012/03/30 1:57
答え

Mikel Goikoetxea

ランク: Junior Member

投稿: 56

参加年月日: 2010/03/16

最近の投稿

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