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