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