Liferay и ZK Integration: Информация о пользователе - PullRequest
0 голосов
/ 26 марта 2012

Я написал портлет и добавил в liferay.

Я нашел способ получить имя пользователя из cookie: https://www.everit.biz/web/guest/blog/-/blogs/getting-current-liferay-user-in-a-standalone-webapp?_33_redirect=/web/guest/blog

Я посмотрел пакет zk liferay, там только классы, связанные с JQuery. http://www.zkoss.org/javadoc/6.0.0/zk/org/zkoss/zkplus/liferay/package-summary.html

Есть ли способ получить текущего пользователя в ZK?

Ответы [ 2 ]

1 голос
/ 22 июня 2013

Следуйте простой схеме

В главном классе контроллера Entry - классе, расширяющем DHtmlLayoutPortlet

В методе процесса вы можете установить commonParameter liferay на zk-сессия

Я предоставляю вам фрагмент кода:

 @Override  
      protected boolean process(Session sess, RenderRequest request,  
                RenderResponse response, String path, boolean bRichlet)  
                throws PortletException, IOException {  
           setupSessionParameters(sess, request);  
           return super.process(sess, request, response, path, bRichlet);  
      }  
      protected void setupSessionParameters(Session sess, RenderRequest request) {  
           ThemeDisplay themeDisplay = (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY);  
           PortletSession portletSession = request.getPortletSession();  
           PortletPreferences prefs = request.getPreferences();  
           sess.setAttribute("SESSION_ID", portletSession.getId());  
           sess.setAttribute("THEME_DISPLAY", themeDisplay);  
           sess.setAttribute("GROUP_ID", themeDisplay.getScopeGroupId());  
           sess.setAttribute("PORTLET_PREFERENCES", prefs);  
           sess.setAttribute("PORTLET_ID", themeDisplay.getPortletDisplay().getId());  
           sess.setAttribute("currentUser", themeDisplay.getUser().getScreenName());  
      }  

Используйте этот zk session для получения этих параметров в вашем приложении

Если вам нужна дополнительная информация

Перейдите по этой ссылке

Он содержит всю информацию, которую вы хотите ...:)

0 голосов
/ 27 марта 2012
Execution exe = Executions.getCurrent();
Session session = Sessions.getCurrent();
PortletSession ps = (PortletSession) session.getNativeSession();
User user = PortalUtil.getUser((HttpServletRequest) exe.getNativeRequest());
user.getUserId();
...