Get the current user Liferay using a simple Java code
Asked Answered
T

3

14

I'm working with : Liferay 6.0.6 with JBoss 5.1 and Struts2.

My question is, how to get the current user in Liferay once logged in, using a Java code.

Trulatrull answered 4/5, 2012 at 11:43 Comment(1)
I meant, the solution should be a Java Code and we have to retrieve the current user by E-mail :)Trulatrull
D
28

In your doView/processAction method do following

User user = (User) request.getAttribute(WebKeys.USER);

or use the ThemeDisplay object. It contains another information like companyId, groupId, ...

ThemeDisplay td  =(ThemeDisplay)request.getAttribute(WebKeys.THEME_DISPLAY);
User user = td.getUser();

Classes ThemeDisplay, User nad WebKeys are part of portal-service.jar.

If you need just some id to identify current user you can also use

String userId = request.getRemoteUser();

This solution is not Liferay specific and should be portable among jsr-286 portals.

Diaconate answered 4/5, 2012 at 12:23 Comment(3)
can you tell me more about the instance "request". how to initialize it ?Trulatrull
Its either RenderRequest, ActionRequest, EventRequest or ResourceRequest. If you are not familiar with them then you should read some portlet tutorial, e.g liferay.com/documentation/liferay-portal/6.0/development/-/ai/…Elgar
User currentUser = LiferayFacesContext.getInstance().getUser();Lyndel
T
6

Liferay provides Util class

com.liferay.portal.util.PortalUtil

This class contains all utility methods to get the frequently used attributes.

Try using PortalUtil.getUser(PortletRequest portletRequest) method to avoid creating new objects and references.

Tootsy answered 6/6, 2012 at 5:36 Comment(2)
What's is the different with ThemeDisplay?Fortunate
@zhelon, nothing, you fetch themeDisplay from request, and then getUser() from it, PortalUtil.getUser() fetches the same from request, if you see PortalImpl.getUser() then you will notice this request.getAttribute(WebKeys.USER);Tootsy
R
6

This is an other possible way to do it :

private LiferayFacesContext liferayFacesContext = LiferayFacesContext.getInstance();
User currentUser=liferayFacesContext.getUser()
Roadblock answered 25/4, 2013 at 17:41 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.