1
14
15 package com.liferay.portlet.enterpriseadmin.action;
16
17 import com.liferay.portal.AddressCityException;
18 import com.liferay.portal.AddressStreetException;
19 import com.liferay.portal.AddressZipException;
20 import com.liferay.portal.ContactFirstNameException;
21 import com.liferay.portal.ContactFullNameException;
22 import com.liferay.portal.ContactLastNameException;
23 import com.liferay.portal.DuplicateUserEmailAddressException;
24 import com.liferay.portal.DuplicateUserScreenNameException;
25 import com.liferay.portal.EmailAddressException;
26 import com.liferay.portal.NoSuchCountryException;
27 import com.liferay.portal.NoSuchListTypeException;
28 import com.liferay.portal.NoSuchRegionException;
29 import com.liferay.portal.NoSuchUserException;
30 import com.liferay.portal.PhoneNumberException;
31 import com.liferay.portal.RequiredUserException;
32 import com.liferay.portal.ReservedUserEmailAddressException;
33 import com.liferay.portal.ReservedUserScreenNameException;
34 import com.liferay.portal.UserEmailAddressException;
35 import com.liferay.portal.UserIdException;
36 import com.liferay.portal.UserPasswordException;
37 import com.liferay.portal.UserReminderQueryException;
38 import com.liferay.portal.UserScreenNameException;
39 import com.liferay.portal.UserSmsException;
40 import com.liferay.portal.WebsiteURLException;
41 import com.liferay.portal.kernel.bean.BeanParamUtil;
42 import com.liferay.portal.kernel.servlet.SessionErrors;
43 import com.liferay.portal.kernel.util.CalendarFactoryUtil;
44 import com.liferay.portal.kernel.util.Constants;
45 import com.liferay.portal.kernel.util.GetterUtil;
46 import com.liferay.portal.kernel.util.HttpUtil;
47 import com.liferay.portal.kernel.util.LocaleUtil;
48 import com.liferay.portal.kernel.util.ParamUtil;
49 import com.liferay.portal.kernel.util.StringPool;
50 import com.liferay.portal.kernel.util.StringUtil;
51 import com.liferay.portal.kernel.util.Validator;
52 import com.liferay.portal.model.Address;
53 import com.liferay.portal.model.Contact;
54 import com.liferay.portal.model.EmailAddress;
55 import com.liferay.portal.model.Group;
56 import com.liferay.portal.model.Layout;
57 import com.liferay.portal.model.Phone;
58 import com.liferay.portal.model.User;
59 import com.liferay.portal.model.UserGroupRole;
60 import com.liferay.portal.model.Website;
61 import com.liferay.portal.security.auth.PrincipalException;
62 import com.liferay.portal.service.ServiceContext;
63 import com.liferay.portal.service.ServiceContextFactory;
64 import com.liferay.portal.service.UserServiceUtil;
65 import com.liferay.portal.struts.PortletAction;
66 import com.liferay.portal.theme.ThemeDisplay;
67 import com.liferay.portal.util.PortalUtil;
68 import com.liferay.portal.util.WebKeys;
69 import com.liferay.portlet.InvokerPortletImpl;
70 import com.liferay.portlet.admin.util.AdminUtil;
71 import com.liferay.portlet.announcements.model.AnnouncementsDelivery;
72 import com.liferay.portlet.announcements.model.impl.AnnouncementsDeliveryImpl;
73 import com.liferay.portlet.announcements.model.impl.AnnouncementsEntryImpl;
74 import com.liferay.portlet.enterpriseadmin.util.EnterpriseAdminUtil;
75
76 import java.util.ArrayList;
77 import java.util.Calendar;
78 import java.util.List;
79
80 import javax.portlet.ActionRequest;
81 import javax.portlet.ActionResponse;
82 import javax.portlet.PortletConfig;
83 import javax.portlet.PortletRequest;
84 import javax.portlet.PortletSession;
85 import javax.portlet.RenderRequest;
86 import javax.portlet.RenderResponse;
87
88 import javax.servlet.http.HttpServletRequest;
89 import javax.servlet.http.HttpSession;
90
91 import org.apache.struts.Globals;
92 import org.apache.struts.action.ActionForm;
93 import org.apache.struts.action.ActionForward;
94 import org.apache.struts.action.ActionMapping;
95
96
103 public class EditUserAction extends PortletAction {
104
105 public void processAction(
106 ActionMapping mapping, ActionForm form, PortletConfig portletConfig,
107 ActionRequest actionRequest, ActionResponse actionResponse)
108 throws Exception {
109
110 String cmd = ParamUtil.getString(actionRequest, Constants.CMD);
111
112 try {
113 User user = null;
114 String oldScreenName = StringPool.BLANK;
115 String oldLanguageId = StringPool.BLANK;
116
117 if (cmd.equals(Constants.ADD)) {
118 user = addUser(actionRequest);
119 }
120 else if (cmd.equals(Constants.DEACTIVATE) ||
121 cmd.equals(Constants.DELETE) ||
122 cmd.equals(Constants.RESTORE)) {
123
124 deleteUsers(actionRequest);
125 }
126 else if (cmd.equals("deleteRole")) {
127 deleteRole(actionRequest);
128 }
129 else if (cmd.equals(Constants.UPDATE)) {
130 Object[] returnValue = updateUser(actionRequest);
131
132 user = (User)returnValue[0];
133 oldScreenName = ((String)returnValue[1]);
134 oldLanguageId = ((String)returnValue[2]);
135 }
136 else if (cmd.equals("unlock")) {
137 user = updateLockout(actionRequest);
138 }
139
140 String redirect = ParamUtil.getString(actionRequest, "redirect");
141
142 if (user != null) {
143 ThemeDisplay themeDisplay =
144 (ThemeDisplay)actionRequest.getAttribute(
145 WebKeys.THEME_DISPLAY);
146
147 if (Validator.isNotNull(oldScreenName)) {
148
149
154 Group group = user.getGroup();
155
156 if (group.getGroupId() == themeDisplay.getScopeGroupId()) {
157 Layout layout = themeDisplay.getLayout();
158
159 String friendlyURLPath = group.getPathFriendlyURL(
160 layout.isPrivateLayout(), themeDisplay);
161
162 String oldPath =
163 friendlyURLPath + StringPool.SLASH + oldScreenName;
164 String newPath =
165 friendlyURLPath + StringPool.SLASH +
166 user.getScreenName();
167
168 redirect = StringUtil.replace(
169 redirect, oldPath, newPath);
170
171 redirect = StringUtil.replace(
172 redirect, HttpUtil.encodeURL(oldPath),
173 HttpUtil.encodeURL(newPath));
174 }
175 }
176
177 if (Validator.isNotNull(oldLanguageId) &&
178 themeDisplay.isI18n()) {
179
180 String i18nLanguageId = user.getLanguageId();
181 int pos = i18nLanguageId.indexOf(StringPool.UNDERLINE);
182
183 if (pos != -1){
184 i18nLanguageId = i18nLanguageId.substring(0, pos);
185 }
186
187 String i18nPath = StringPool.SLASH + i18nLanguageId;
188
189 redirect = StringUtil.replace(
190 redirect, themeDisplay.getI18nPath(), i18nPath);
191 }
192
193 redirect = HttpUtil.setParameter(
194 redirect, actionResponse.getNamespace() + "p_u_i_d",
195 user.getUserId());
196 }
197
198 sendRedirect(actionRequest, actionResponse, redirect);
199 }
200 catch (Exception e) {
201 if (e instanceof NoSuchUserException ||
202 e instanceof PrincipalException) {
203
204 SessionErrors.add(actionRequest, e.getClass().getName());
205
206 setForward(actionRequest, "portlet.enterprise_admin.error");
207 }
208 else if (e instanceof AddressCityException ||
209 e instanceof AddressStreetException ||
210 e instanceof AddressZipException ||
211 e instanceof ContactFirstNameException ||
212 e instanceof ContactFullNameException ||
213 e instanceof ContactLastNameException ||
214 e instanceof DuplicateUserEmailAddressException ||
215 e instanceof DuplicateUserScreenNameException ||
216 e instanceof EmailAddressException ||
217 e instanceof NoSuchCountryException ||
218 e instanceof NoSuchListTypeException ||
219 e instanceof NoSuchRegionException ||
220 e instanceof PhoneNumberException ||
221 e instanceof RequiredUserException ||
222 e instanceof ReservedUserEmailAddressException ||
223 e instanceof ReservedUserScreenNameException ||
224 e instanceof UserEmailAddressException ||
225 e instanceof UserIdException ||
226 e instanceof UserPasswordException ||
227 e instanceof UserReminderQueryException ||
228 e instanceof UserScreenNameException ||
229 e instanceof UserSmsException ||
230 e instanceof WebsiteURLException) {
231
232 if (e instanceof NoSuchListTypeException) {
233 NoSuchListTypeException nslte = (NoSuchListTypeException)e;
234
235 SessionErrors.add(
236 actionRequest,
237 e.getClass().getName() + nslte.getType());
238 }
239 else {
240 SessionErrors.add(actionRequest, e.getClass().getName(), e);
241 }
242
243 if (e instanceof RequiredUserException) {
244 actionResponse.sendRedirect(
245 ParamUtil.getString(actionRequest, "redirect"));
246 }
247 }
248 else {
249 throw e;
250 }
251 }
252 }
253
254 public ActionForward render(
255 ActionMapping mapping, ActionForm form, PortletConfig portletConfig,
256 RenderRequest renderRequest, RenderResponse renderResponse)
257 throws Exception {
258
259 try {
260 PortalUtil.getSelectedUser(renderRequest);
261 }
262 catch (Exception e) {
263 if (e instanceof PrincipalException) {
264 SessionErrors.add(renderRequest, e.getClass().getName());
265
266 return mapping.findForward("portlet.enterprise_admin.error");
267 }
268 else {
269 throw e;
270 }
271 }
272
273 return mapping.findForward(
274 getForward(renderRequest, "portlet.enterprise_admin.edit_user"));
275 }
276
277 protected User addUser(ActionRequest actionRequest)
278 throws Exception {
279
280 ThemeDisplay themeDisplay = (ThemeDisplay)actionRequest.getAttribute(
281 WebKeys.THEME_DISPLAY);
282
283 boolean autoPassword = ParamUtil.getBoolean(
284 actionRequest, "autoPassword", true);
285 String password1 = ParamUtil.getString(actionRequest, "password1");
286 String password2 = ParamUtil.getString(actionRequest, "password2");
287
288 String reminderQueryQuestion = ParamUtil.getString(
289 actionRequest, "reminderQueryQuestion");
290
291 if (reminderQueryQuestion.equals(EnterpriseAdminUtil.CUSTOM_QUESTION)) {
292 reminderQueryQuestion = ParamUtil.getString(
293 actionRequest, "reminderQueryCustomQuestion");
294 }
295
296 String reminderQueryAnswer = ParamUtil.getString(
297 actionRequest, "reminderQueryAnswer");
298 boolean autoScreenName = ParamUtil.getBoolean(
299 actionRequest, "autoScreenName");
300 String screenName = ParamUtil.getString(actionRequest, "screenName");
301 String emailAddress = ParamUtil.getString(
302 actionRequest, "emailAddress");
303 String openId = ParamUtil.getString(actionRequest, "openId");
304 String languageId = ParamUtil.getString(actionRequest, "languageId");
305 String timeZoneId = ParamUtil.getString(actionRequest, "timeZoneId");
306 String greeting = ParamUtil.getString(actionRequest, "greeting");
307 String firstName = ParamUtil.getString(actionRequest, "firstName");
308 String middleName = ParamUtil.getString(actionRequest, "middleName");
309 String lastName = ParamUtil.getString(actionRequest, "lastName");
310 int prefixId = ParamUtil.getInteger(actionRequest, "prefixId");
311 int suffixId = ParamUtil.getInteger(actionRequest, "suffixId");
312 boolean male = ParamUtil.getBoolean(actionRequest, "male", true);
313 int birthdayMonth = ParamUtil.getInteger(
314 actionRequest, "birthdayMonth");
315 int birthdayDay = ParamUtil.getInteger(actionRequest, "birthdayDay");
316 int birthdayYear = ParamUtil.getInteger(actionRequest, "birthdayYear");
317 String comments = ParamUtil.getString(actionRequest, "comments");
318 String smsSn = ParamUtil.getString(actionRequest, "smsSn");
319 String aimSn = ParamUtil.getString(actionRequest, "aimSn");
320 String facebookSn = ParamUtil.getString(actionRequest, "facebookSn");
321 String icqSn = ParamUtil.getString(actionRequest, "icqSn");
322 String jabberSn = ParamUtil.getString(actionRequest, "jabberSn");
323 String msnSn = ParamUtil.getString(actionRequest, "msnSn");
324 String mySpaceSn = ParamUtil.getString(actionRequest, "mySpaceSn");
325 String skypeSn = ParamUtil.getString(actionRequest, "skypeSn");
326 String twitterSn = ParamUtil.getString(actionRequest, "twitterSn");
327 String ymSn = ParamUtil.getString(actionRequest, "ymSn");
328 String jobTitle = ParamUtil.getString(actionRequest, "jobTitle");
329 long[] groupIds = getLongArray(
330 actionRequest, "groupsSearchContainerPrimaryKeys");
331 long[] organizationIds = getLongArray(
332 actionRequest, "organizationsSearchContainerPrimaryKeys");
333 long[] roleIds = getLongArray(
334 actionRequest, "rolesSearchContainerPrimaryKeys");
335 List<UserGroupRole> userGroupRoles =
336 EnterpriseAdminUtil.getUserGroupRoles(actionRequest);
337 long[] userGroupIds = getLongArray(
338 actionRequest, "userGroupsSearchContainerPrimaryKeys");
339 boolean sendEmail = true;
340 List<Address> addresses = EnterpriseAdminUtil.getAddresses(
341 actionRequest);
342 List<EmailAddress> emailAddresses =
343 EnterpriseAdminUtil.getEmailAddresses(actionRequest);
344 List<Phone> phones = EnterpriseAdminUtil.getPhones(actionRequest);
345 List<Website> websites = EnterpriseAdminUtil.getWebsites(actionRequest);
346 List<AnnouncementsDelivery> announcementsDeliveries =
347 getAnnouncementsDeliveries(actionRequest);
348
349 ServiceContext serviceContext = ServiceContextFactory.getInstance(
350 User.class.getName(), actionRequest);
351
352 User user = null;
353
354 user = UserServiceUtil.addUser(
355 themeDisplay.getCompanyId(), autoPassword, password1, password2,
356 autoScreenName, screenName, emailAddress, openId,
357 LocaleUtil.getDefault(), firstName, middleName, lastName, prefixId,
358 suffixId, male, birthdayMonth, birthdayDay, birthdayYear, jobTitle,
359 groupIds, organizationIds, roleIds, userGroupIds, sendEmail,
360 addresses, emailAddresses, phones, websites,
361 announcementsDeliveries, serviceContext);
362
363 if (!userGroupRoles.isEmpty()) {
364 for (UserGroupRole userGroupRole : userGroupRoles) {
365 userGroupRole.setUserId(user.getUserId());
366 }
367
368 user = UserServiceUtil.updateUser(
369 user.getUserId(), StringPool.BLANK, StringPool.BLANK,
370 StringPool.BLANK, false, reminderQueryQuestion,
371 reminderQueryAnswer, screenName, emailAddress, openId,
372 languageId, timeZoneId, greeting, comments, firstName,
373 middleName, lastName, prefixId, suffixId, male, birthdayMonth,
374 birthdayDay, birthdayYear, smsSn, aimSn, facebookSn, icqSn,
375 jabberSn, msnSn, mySpaceSn, skypeSn, twitterSn, ymSn, jobTitle,
376 groupIds, organizationIds, roleIds, userGroupRoles,
377 userGroupIds, addresses, emailAddresses, phones, websites,
378 announcementsDeliveries, serviceContext);
379 }
380
381 return user;
382 }
383
384 protected void deleteRole(ActionRequest actionRequest) throws Exception {
385 User user = PortalUtil.getSelectedUser(actionRequest);
386
387 long roleId = ParamUtil.getLong(actionRequest, "roleId");
388
389 UserServiceUtil.deleteRoleUser(roleId, user.getUserId());
390 }
391
392 protected void deleteUsers(ActionRequest actionRequest) throws Exception {
393 String cmd = ParamUtil.getString(actionRequest, Constants.CMD);
394
395 long[] deleteUserIds = StringUtil.split(
396 ParamUtil.getString(actionRequest, "deleteUserIds"), 0L);
397
398 for (int i = 0; i < deleteUserIds.length; i++) {
399 if (cmd.equals(Constants.DEACTIVATE) ||
400 cmd.equals(Constants.RESTORE)) {
401
402 boolean active = !cmd.equals(Constants.DEACTIVATE);
403
404 UserServiceUtil.updateActive(deleteUserIds[i], active);
405 }
406 else {
407 UserServiceUtil.deleteUser(deleteUserIds[i]);
408 }
409 }
410 }
411
412 protected List<AnnouncementsDelivery> getAnnouncementsDeliveries(
413 ActionRequest actionRequest) {
414
415 List<AnnouncementsDelivery> announcementsDeliveries =
416 new ArrayList<AnnouncementsDelivery>();
417
418 for (String type : AnnouncementsEntryImpl.TYPES) {
419 boolean email = ParamUtil.getBoolean(
420 actionRequest, "announcementsType" + type + "Email");
421 boolean sms = ParamUtil.getBoolean(
422 actionRequest, "announcementsType" + type + "Sms");
423 boolean website = ParamUtil.getBoolean(
424 actionRequest, "announcementsType" + type + "Website");
425
426 AnnouncementsDelivery announcementsDelivery =
427 new AnnouncementsDeliveryImpl();
428
429 announcementsDelivery.setType(type);
430 announcementsDelivery.setEmail(email);
431 announcementsDelivery.setSms(sms);
432 announcementsDelivery.setWebsite(website);
433
434 announcementsDeliveries.add(announcementsDelivery);
435 }
436
437 return announcementsDeliveries;
438 }
439
440 protected long[] getLongArray(PortletRequest portletRequest, String name) {
441 String value = portletRequest.getParameter(name);
442
443 if (value == null) {
444 return null;
445 }
446
447 return StringUtil.split(GetterUtil.getString(value), 0L);
448 }
449
450 protected User updateLockout(ActionRequest actionRequest) throws Exception {
451 User user = PortalUtil.getSelectedUser(actionRequest);
452
453 UserServiceUtil.updateLockout(user.getUserId(), false);
454
455 return user;
456 }
457
458 protected Object[] updateUser(ActionRequest actionRequest)
459 throws Exception {
460
461 ThemeDisplay themeDisplay = (ThemeDisplay)actionRequest.getAttribute(
462 WebKeys.THEME_DISPLAY);
463
464 User user = PortalUtil.getSelectedUser(actionRequest);
465
466 Contact contact = user.getContact();
467
468 String oldPassword = AdminUtil.getUpdateUserPassword(
469 actionRequest, user.getUserId());
470 String newPassword1 = ParamUtil.getString(actionRequest, "password1");
471 String newPassword2 = ParamUtil.getString(actionRequest, "password2");
472 boolean passwordReset = ParamUtil.getBoolean(
473 actionRequest, "passwordReset");
474
475 String reminderQueryQuestion = BeanParamUtil.getString(
476 user, actionRequest, "reminderQueryQuestion");
477
478 if (reminderQueryQuestion.equals(EnterpriseAdminUtil.CUSTOM_QUESTION)) {
479 reminderQueryQuestion = BeanParamUtil.getString(
480 user, actionRequest, "reminderQueryCustomQuestion");
481 }
482
483 String reminderQueryAnswer = BeanParamUtil.getString(
484 user, actionRequest, "reminderQueryAnswer");
485 String oldScreenName = user.getScreenName();
486 String screenName = BeanParamUtil.getString(
487 user, actionRequest, "screenName");
488 String emailAddress = BeanParamUtil.getString(
489 user, actionRequest, "emailAddress");
490 String openId = BeanParamUtil.getString(user, actionRequest, "openId");
491 String oldLanguageId = user.getLanguageId();
492 String languageId = BeanParamUtil.getString(
493 user, actionRequest, "languageId");
494 String timeZoneId = BeanParamUtil.getString(
495 user, actionRequest, "timeZoneId");
496 String greeting = BeanParamUtil.getString(
497 user, actionRequest, "greeting");
498 String firstName = BeanParamUtil.getString(
499 user, actionRequest, "firstName");
500 String middleName = BeanParamUtil.getString(
501 user, actionRequest, "middleName");
502 String lastName = BeanParamUtil.getString(
503 user, actionRequest, "lastName");
504 int prefixId = BeanParamUtil.getInteger(
505 user, actionRequest, "prefixId");
506 int suffixId = BeanParamUtil.getInteger(
507 user, actionRequest, "suffixId");
508 boolean male = BeanParamUtil.getBoolean(
509 user, actionRequest, "male", true);
510
511 Calendar birthdayCal = CalendarFactoryUtil.getCalendar();
512
513 birthdayCal.setTime(contact.getBirthday());
514
515 int birthdayMonth = ParamUtil.getInteger(
516 actionRequest, "birthdayMonth", birthdayCal.get(Calendar.MONTH));
517 int birthdayDay = ParamUtil.getInteger(
518 actionRequest, "birthdayDay", birthdayCal.get(Calendar.DATE));
519 int birthdayYear = ParamUtil.getInteger(
520 actionRequest, "birthdayYear", birthdayCal.get(Calendar.YEAR));
521 String comments = BeanParamUtil.getString(
522 user, actionRequest, "comments");
523 String smsSn = BeanParamUtil.getString(contact, actionRequest, "smsSn");
524 String aimSn = BeanParamUtil.getString(contact, actionRequest, "aimSn");
525 String facebookSn = BeanParamUtil.getString(
526 contact, actionRequest, "facebookSn");
527 String icqSn = BeanParamUtil.getString(contact, actionRequest, "icqSn");
528 String jabberSn = BeanParamUtil.getString(
529 contact, actionRequest, "jabberSn");
530 String msnSn = BeanParamUtil.getString(contact, actionRequest, "msnSn");
531 String mySpaceSn = BeanParamUtil.getString(
532 contact, actionRequest, "mySpaceSn");
533 String skypeSn = BeanParamUtil.getString(
534 contact, actionRequest, "skypeSn");
535 String twitterSn = BeanParamUtil.getString(
536 contact, actionRequest, "twitterSn");
537 String ymSn = BeanParamUtil.getString(contact, actionRequest, "ymSn");
538 String jobTitle = BeanParamUtil.getString(
539 user, actionRequest, "jobTitle");
540 long[] groupIds = getLongArray(
541 actionRequest, "groupsSearchContainerPrimaryKeys");
542 long[] organizationIds = getLongArray(
543 actionRequest, "organizationsSearchContainerPrimaryKeys");
544 long[] roleIds = getLongArray(
545 actionRequest, "rolesSearchContainerPrimaryKeys");
546 List<UserGroupRole> userGroupRoles =
547 EnterpriseAdminUtil.getUserGroupRoles(actionRequest);
548 long[] userGroupIds = getLongArray(
549 actionRequest, "userGroupsSearchContainerPrimaryKeys");
550 List<Address> addresses = EnterpriseAdminUtil.getAddresses(
551 actionRequest);
552 List<EmailAddress> emailAddresses =
553 EnterpriseAdminUtil.getEmailAddresses(actionRequest);
554 List<Phone> phones = EnterpriseAdminUtil.getPhones(actionRequest);
555 List<Website> websites = EnterpriseAdminUtil.getWebsites(actionRequest);
556 List<AnnouncementsDelivery> announcementsDeliveries =
557 getAnnouncementsDeliveries(actionRequest);
558
559 ServiceContext serviceContext = ServiceContextFactory.getInstance(
560 User.class.getName(), actionRequest);
561
562 user = UserServiceUtil.updateUser(
563 user.getUserId(), oldPassword, newPassword1, newPassword2,
564 passwordReset, reminderQueryQuestion, reminderQueryAnswer,
565 screenName, emailAddress, openId, languageId, timeZoneId,greeting,
566 comments, firstName, middleName, lastName, prefixId, suffixId, male,
567 birthdayMonth, birthdayDay, birthdayYear, smsSn, aimSn, facebookSn,
568 icqSn, jabberSn, msnSn, mySpaceSn, skypeSn, twitterSn, ymSn,
569 jobTitle, groupIds, organizationIds, roleIds, userGroupRoles,
570 userGroupIds, addresses, emailAddresses, phones, websites,
571 announcementsDeliveries, serviceContext);
572
573 if (oldScreenName.equals(user.getScreenName())) {
574 oldScreenName = StringPool.BLANK;
575 }
576
577 boolean deletePortrait = ParamUtil.getBoolean(
578 actionRequest, "deletePortrait");
579
580 if (deletePortrait) {
581 UserServiceUtil.deletePortrait(user.getUserId());
582 }
583
584 if (user.getUserId() == themeDisplay.getUserId()) {
585
586
588 HttpServletRequest request = PortalUtil.getHttpServletRequest(
589 actionRequest);
590 HttpSession session = request.getSession();
591
592 session.removeAttribute(Globals.LOCALE_KEY);
593
594
596 PortletSession portletSession = actionRequest.getPortletSession();
597
598 InvokerPortletImpl.clearResponses(portletSession);
599
600
602 if (Validator.isNotNull(newPassword1)) {
603 portletSession.setAttribute(
604 WebKeys.USER_PASSWORD, newPassword1,
605 PortletSession.APPLICATION_SCOPE);
606 }
607 }
608
609 return new Object[] {user, oldScreenName, oldLanguageId};
610 }
611
612 }