1
22
23 package com.liferay.portal.events;
24
25 import com.liferay.portal.kernel.events.Action;
26 import com.liferay.portal.kernel.events.ActionException;
27 import com.liferay.portal.kernel.json.JSONFactoryUtil;
28 import com.liferay.portal.kernel.json.JSONObject;
29 import com.liferay.portal.kernel.log.Log;
30 import com.liferay.portal.kernel.log.LogFactoryUtil;
31 import com.liferay.portal.kernel.messaging.DestinationNames;
32 import com.liferay.portal.kernel.messaging.MessageBusUtil;
33 import com.liferay.portal.kernel.servlet.HttpHeaders;
34 import com.liferay.portal.kernel.util.PropsKeys;
35 import com.liferay.portal.service.UserLocalServiceUtil;
36 import com.liferay.portal.util.PortalUtil;
37 import com.liferay.portal.util.PrefsPropsUtil;
38 import com.liferay.portal.util.PropsValues;
39
40 import javax.servlet.http.HttpServletRequest;
41 import javax.servlet.http.HttpServletResponse;
42 import javax.servlet.http.HttpSession;
43
44 import org.apache.struts.Globals;
45
46
51 public class LoginPostAction extends Action {
52
53 public void run(HttpServletRequest request, HttpServletResponse response)
54 throws ActionException {
55
56 try {
57 if (_log.isDebugEnabled()) {
58 _log.debug("Running " + request.getRemoteUser());
59 }
60
61 HttpSession session = request.getSession();
62
63 long companyId = PortalUtil.getCompanyId(request);
64 long userId = PortalUtil.getUserId(request);
65
66
68 session.removeAttribute(Globals.LOCALE_KEY);
69
70
72 if (PropsValues.LIVE_USERS_ENABLED) {
73 String sessionId = session.getId();
74 String remoteAddr = request.getRemoteAddr();
75 String remoteHost = request.getRemoteHost();
76 String userAgent = request.getHeader(HttpHeaders.USER_AGENT);
77
78 JSONObject jsonObj = JSONFactoryUtil.createJSONObject();
79
80 jsonObj.put("command", "signIn");
81 jsonObj.put("companyId", companyId);
82 jsonObj.put("userId", userId);
83 jsonObj.put("sessionId", sessionId);
84 jsonObj.put("remoteAddr", remoteAddr);
85 jsonObj.put("remoteHost", remoteHost);
86 jsonObj.put("userAgent", userAgent);
87
88 MessageBusUtil.sendMessage(
89 DestinationNames.LIVE_USERS, jsonObj);
90 }
91
92 if (PrefsPropsUtil.getBoolean(
93 companyId, PropsKeys.ADMIN_SYNC_DEFAULT_ASSOCIATIONS)) {
94
95 UserLocalServiceUtil.addDefaultGroups(userId);
96 UserLocalServiceUtil.addDefaultRoles(userId);
97 UserLocalServiceUtil.addDefaultUserGroups(userId);
98 }
99 }
100 catch (Exception e) {
101 throw new ActionException(e);
102 }
103 }
104
105 private static Log _log = LogFactoryUtil.getLog(LoginPostAction.class);
106
107 }