Java tutorial
/** * Copyright (c) 2000-2012 Liferay, Inc. All rights reserved. * * This library is free software; you can redistribute it and/or modify it under * the terms of the GNU Lesser General Public License as published by the Free * Software Foundation; either version 2.1 of the License, or (at your option) * any later version. * * This library is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more * details. */ package com.liferay.portlet.usersadmin.action; import com.liferay.portal.AddressCityException; import com.liferay.portal.AddressStreetException; import com.liferay.portal.AddressZipException; import com.liferay.portal.CompanyMaxUsersException; import com.liferay.portal.ContactBirthdayException; import com.liferay.portal.ContactFirstNameException; import com.liferay.portal.ContactFullNameException; import com.liferay.portal.ContactLastNameException; import com.liferay.portal.DuplicateUserEmailAddressException; import com.liferay.portal.DuplicateUserScreenNameException; import com.liferay.portal.EmailAddressException; import com.liferay.portal.GroupFriendlyURLException; import com.liferay.portal.NoSuchCountryException; import com.liferay.portal.NoSuchListTypeException; import com.liferay.portal.NoSuchRegionException; import com.liferay.portal.NoSuchUserException; import com.liferay.portal.PhoneNumberException; import com.liferay.portal.RequiredUserException; import com.liferay.portal.ReservedUserEmailAddressException; import com.liferay.portal.ReservedUserScreenNameException; import com.liferay.portal.UserEmailAddressException; import com.liferay.portal.UserIdException; import com.liferay.portal.UserPasswordException; import com.liferay.portal.UserReminderQueryException; import com.liferay.portal.UserScreenNameException; import com.liferay.portal.UserSmsException; import com.liferay.portal.WebsiteURLException; import com.liferay.portal.kernel.bean.BeanParamUtil; import com.liferay.portal.kernel.language.LanguageUtil; import com.liferay.portal.kernel.servlet.SessionErrors; import com.liferay.portal.kernel.servlet.SessionMessages; import com.liferay.portal.kernel.util.CalendarFactoryUtil; import com.liferay.portal.kernel.util.CharPool; import com.liferay.portal.kernel.util.Constants; import com.liferay.portal.kernel.util.GetterUtil; import com.liferay.portal.kernel.util.HttpUtil; import com.liferay.portal.kernel.util.LocaleUtil; import com.liferay.portal.kernel.util.ParamUtil; import com.liferay.portal.kernel.util.StringPool; import com.liferay.portal.kernel.util.StringUtil; import com.liferay.portal.kernel.util.Validator; import com.liferay.portal.kernel.workflow.WorkflowConstants; import com.liferay.portal.model.Address; import com.liferay.portal.model.Company; import com.liferay.portal.model.Contact; import com.liferay.portal.model.EmailAddress; import com.liferay.portal.model.Group; import com.liferay.portal.model.Layout; import com.liferay.portal.model.Phone; import com.liferay.portal.model.User; import com.liferay.portal.model.UserGroupRole; import com.liferay.portal.model.Website; import com.liferay.portal.security.auth.PrincipalException; import com.liferay.portal.service.ServiceContext; import com.liferay.portal.service.ServiceContextFactory; import com.liferay.portal.service.UserLocalServiceUtil; import com.liferay.portal.service.UserServiceUtil; import com.liferay.portal.struts.PortletAction; import com.liferay.portal.theme.ThemeDisplay; import com.liferay.portal.util.PortalUtil; import com.liferay.portal.util.PropsValues; import com.liferay.portal.util.WebKeys; import com.liferay.portlet.InvokerPortletImpl; import com.liferay.portlet.admin.util.AdminUtil; import com.liferay.portlet.announcements.model.AnnouncementsDelivery; import com.liferay.portlet.announcements.model.AnnouncementsEntryConstants; import com.liferay.portlet.announcements.model.impl.AnnouncementsDeliveryImpl; import com.liferay.portlet.sites.util.SitesUtil; import com.liferay.portlet.usersadmin.util.UsersAdminUtil; import java.util.ArrayList; import java.util.Calendar; import java.util.List; import java.util.Locale; import javax.portlet.ActionRequest; import javax.portlet.ActionResponse; import javax.portlet.PortletConfig; import javax.portlet.PortletRequest; import javax.portlet.PortletSession; import javax.portlet.RenderRequest; import javax.portlet.RenderResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.apache.struts.Globals; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; /** * @author Brian Wing Shun Chan * @author Jorge Ferrer * @author Julio Camarero * @author Wesley Gong */ public class EditUserAction extends PortletAction { @Override public void processAction(ActionMapping mapping, ActionForm form, PortletConfig portletConfig, ActionRequest actionRequest, ActionResponse actionResponse) throws Exception { String cmd = ParamUtil.getString(actionRequest, Constants.CMD); try { User user = null; String oldScreenName = StringPool.BLANK; String oldLanguageId = StringPool.BLANK; if (cmd.equals(Constants.ADD)) { user = addUser(actionRequest); } else if (cmd.equals(Constants.DEACTIVATE) || cmd.equals(Constants.DELETE) || cmd.equals(Constants.RESTORE)) { deleteUsers(actionRequest); } else if (cmd.equals("deleteRole")) { deleteRole(actionRequest); } else if (cmd.equals(Constants.UPDATE)) { Object[] returnValue = updateUser(actionRequest, actionResponse); user = (User) returnValue[0]; oldScreenName = ((String) returnValue[1]); oldLanguageId = ((String) returnValue[2]); } else if (cmd.equals("unlock")) { user = updateLockout(actionRequest); } ThemeDisplay themeDisplay = (ThemeDisplay) actionRequest.getAttribute(WebKeys.THEME_DISPLAY); String redirect = ParamUtil.getString(actionRequest, "redirect"); if (user != null) { if (Validator.isNotNull(oldScreenName)) { // This will fix the redirect if the user is on his personal // my account page and changes his screen name. A redirect // that references the old screen name no longer points to a // valid screen name and therefore needs to be updated. Group group = user.getGroup(); if (group.getGroupId() == themeDisplay.getScopeGroupId()) { Layout layout = themeDisplay.getLayout(); String friendlyURLPath = group.getPathFriendlyURL(layout.isPrivateLayout(), themeDisplay); String oldPath = friendlyURLPath + StringPool.SLASH + oldScreenName; String newPath = friendlyURLPath + StringPool.SLASH + user.getScreenName(); redirect = StringUtil.replace(redirect, oldPath, newPath); redirect = StringUtil.replace(redirect, HttpUtil.encodeURL(oldPath), HttpUtil.encodeURL(newPath)); } } if (Validator.isNotNull(oldLanguageId) && themeDisplay.isI18n()) { String i18nLanguageId = user.getLanguageId(); int pos = i18nLanguageId.indexOf(CharPool.UNDERLINE); if (pos != -1) { i18nLanguageId = i18nLanguageId.substring(0, pos); } String i18nPath = StringPool.SLASH + i18nLanguageId; redirect = StringUtil.replace(redirect, themeDisplay.getI18nPath(), i18nPath); } redirect = HttpUtil.setParameter(redirect, actionResponse.getNamespace() + "p_u_i_d", user.getUserId()); } Group scopeGroup = themeDisplay.getScopeGroup(); if (scopeGroup.isUser()) { try { UserLocalServiceUtil.getUserById(scopeGroup.getClassPK()); } catch (NoSuchUserException nsue) { redirect = HttpUtil.setParameter(redirect, "doAsGroupId", 0); redirect = HttpUtil.setParameter(redirect, "refererPlid", 0); } } sendRedirect(actionRequest, actionResponse, redirect); } catch (Exception e) { if (e instanceof NoSuchUserException || e instanceof PrincipalException) { SessionErrors.add(actionRequest, e.getClass().getName()); setForward(actionRequest, "portlet.users_admin.error"); } else if (e instanceof AddressCityException || e instanceof AddressStreetException || e instanceof AddressZipException || e instanceof CompanyMaxUsersException || e instanceof ContactBirthdayException || e instanceof ContactFirstNameException || e instanceof ContactFullNameException || e instanceof ContactLastNameException || e instanceof DuplicateUserEmailAddressException || e instanceof DuplicateUserScreenNameException || e instanceof EmailAddressException || e instanceof GroupFriendlyURLException || e instanceof NoSuchCountryException || e instanceof NoSuchListTypeException || e instanceof NoSuchRegionException || e instanceof PhoneNumberException || e instanceof RequiredUserException || e instanceof ReservedUserEmailAddressException || e instanceof ReservedUserScreenNameException || e instanceof UserEmailAddressException || e instanceof UserIdException || e instanceof UserPasswordException || e instanceof UserReminderQueryException || e instanceof UserScreenNameException || e instanceof UserSmsException || e instanceof WebsiteURLException) { if (e instanceof NoSuchListTypeException) { NoSuchListTypeException nslte = (NoSuchListTypeException) e; SessionErrors.add(actionRequest, e.getClass().getName() + nslte.getType()); } else { SessionErrors.add(actionRequest, e.getClass().getName(), e); } if (e instanceof RequiredUserException) { String redirect = PortalUtil.escapeRedirect(ParamUtil.getString(actionRequest, "redirect")); if (Validator.isNotNull(redirect)) { actionResponse.sendRedirect(redirect); } } } else { throw e; } } } @Override public ActionForward render(ActionMapping mapping, ActionForm form, PortletConfig portletConfig, RenderRequest renderRequest, RenderResponse renderResponse) throws Exception { try { PortalUtil.getSelectedUser(renderRequest); } catch (Exception e) { if (e instanceof PrincipalException) { SessionErrors.add(renderRequest, e.getClass().getName()); return mapping.findForward("portlet.users_admin.error"); } else { throw e; } } return mapping.findForward(getForward(renderRequest, "portlet.users_admin.edit_user")); } protected User addUser(ActionRequest actionRequest) throws Exception { ThemeDisplay themeDisplay = (ThemeDisplay) actionRequest.getAttribute(WebKeys.THEME_DISPLAY); boolean autoPassword = ParamUtil.getBoolean(actionRequest, "autoPassword", true); String password1 = actionRequest.getParameter("password1"); String password2 = actionRequest.getParameter("password2"); String reminderQueryQuestion = ParamUtil.getString(actionRequest, "reminderQueryQuestion"); if (reminderQueryQuestion.equals(UsersAdminUtil.CUSTOM_QUESTION)) { reminderQueryQuestion = ParamUtil.getString(actionRequest, "reminderQueryCustomQuestion"); } String reminderQueryAnswer = ParamUtil.getString(actionRequest, "reminderQueryAnswer"); boolean autoScreenName = ParamUtil.getBoolean(actionRequest, "autoScreenName"); String screenName = ParamUtil.getString(actionRequest, "screenName"); String emailAddress = ParamUtil.getString(actionRequest, "emailAddress"); long facebookId = 0; String openId = ParamUtil.getString(actionRequest, "openId"); String languageId = ParamUtil.getString(actionRequest, "languageId"); String timeZoneId = ParamUtil.getString(actionRequest, "timeZoneId"); String greeting = ParamUtil.getString(actionRequest, "greeting"); String firstName = ParamUtil.getString(actionRequest, "firstName"); String middleName = ParamUtil.getString(actionRequest, "middleName"); String lastName = ParamUtil.getString(actionRequest, "lastName"); int prefixId = ParamUtil.getInteger(actionRequest, "prefixId"); int suffixId = ParamUtil.getInteger(actionRequest, "suffixId"); boolean male = ParamUtil.getBoolean(actionRequest, "male", true); int birthdayMonth = ParamUtil.getInteger(actionRequest, "birthdayMonth"); int birthdayDay = ParamUtil.getInteger(actionRequest, "birthdayDay"); int birthdayYear = ParamUtil.getInteger(actionRequest, "birthdayYear"); String comments = ParamUtil.getString(actionRequest, "comments"); String smsSn = ParamUtil.getString(actionRequest, "smsSn"); String aimSn = ParamUtil.getString(actionRequest, "aimSn"); String facebookSn = ParamUtil.getString(actionRequest, "facebookSn"); String icqSn = ParamUtil.getString(actionRequest, "icqSn"); String jabberSn = ParamUtil.getString(actionRequest, "jabberSn"); String msnSn = ParamUtil.getString(actionRequest, "msnSn"); String mySpaceSn = ParamUtil.getString(actionRequest, "mySpaceSn"); String skypeSn = ParamUtil.getString(actionRequest, "skypeSn"); String twitterSn = ParamUtil.getString(actionRequest, "twitterSn"); String ymSn = ParamUtil.getString(actionRequest, "ymSn"); String jobTitle = ParamUtil.getString(actionRequest, "jobTitle"); long[] groupIds = getLongArray(actionRequest, "groupsSearchContainerPrimaryKeys"); long[] organizationIds = getLongArray(actionRequest, "organizationsSearchContainerPrimaryKeys"); long[] roleIds = getLongArray(actionRequest, "rolesSearchContainerPrimaryKeys"); List<UserGroupRole> userGroupRoles = UsersAdminUtil.getUserGroupRoles(actionRequest); long[] userGroupIds = getLongArray(actionRequest, "userGroupsSearchContainerPrimaryKeys"); List<Address> addresses = UsersAdminUtil.getAddresses(actionRequest); List<EmailAddress> emailAddresses = UsersAdminUtil.getEmailAddresses(actionRequest); List<Phone> phones = UsersAdminUtil.getPhones(actionRequest); List<Website> websites = UsersAdminUtil.getWebsites(actionRequest); List<AnnouncementsDelivery> announcementsDeliveries = getAnnouncementsDeliveries(actionRequest); boolean sendEmail = true; ServiceContext serviceContext = ServiceContextFactory.getInstance(User.class.getName(), actionRequest); User user = UserServiceUtil.addUser(themeDisplay.getCompanyId(), autoPassword, password1, password2, autoScreenName, screenName, emailAddress, facebookId, openId, LocaleUtil.getDefault(), firstName, middleName, lastName, prefixId, suffixId, male, birthdayMonth, birthdayDay, birthdayYear, jobTitle, groupIds, organizationIds, roleIds, userGroupIds, addresses, emailAddresses, phones, websites, announcementsDeliveries, sendEmail, serviceContext); if (!userGroupRoles.isEmpty()) { for (UserGroupRole userGroupRole : userGroupRoles) { userGroupRole.setUserId(user.getUserId()); } user = UserServiceUtil.updateUser(user.getUserId(), StringPool.BLANK, StringPool.BLANK, StringPool.BLANK, false, reminderQueryQuestion, reminderQueryAnswer, screenName, emailAddress, facebookId, openId, languageId, timeZoneId, greeting, comments, firstName, middleName, lastName, prefixId, suffixId, male, birthdayMonth, birthdayDay, birthdayYear, smsSn, aimSn, facebookSn, icqSn, jabberSn, msnSn, mySpaceSn, skypeSn, twitterSn, ymSn, jobTitle, groupIds, organizationIds, roleIds, userGroupRoles, userGroupIds, addresses, emailAddresses, phones, websites, announcementsDeliveries, serviceContext); } long publicLayoutSetPrototypeId = ParamUtil.getLong(actionRequest, "publicLayoutSetPrototypeId"); long privateLayoutSetPrototypeId = ParamUtil.getLong(actionRequest, "privateLayoutSetPrototypeId"); SitesUtil.applyLayoutSetPrototypes(user.getGroup(), publicLayoutSetPrototypeId, privateLayoutSetPrototypeId, serviceContext); return user; } protected void deleteRole(ActionRequest actionRequest) throws Exception { User user = PortalUtil.getSelectedUser(actionRequest); long roleId = ParamUtil.getLong(actionRequest, "roleId"); UserServiceUtil.deleteRoleUser(roleId, user.getUserId()); } protected void deleteUsers(ActionRequest actionRequest) throws Exception { String cmd = ParamUtil.getString(actionRequest, Constants.CMD); long[] deleteUserIds = StringUtil.split(ParamUtil.getString(actionRequest, "deleteUserIds"), 0L); for (int i = 0; i < deleteUserIds.length; i++) { if (cmd.equals(Constants.DEACTIVATE) || cmd.equals(Constants.RESTORE)) { int status = WorkflowConstants.STATUS_APPROVED; if (cmd.equals(Constants.DEACTIVATE)) { status = WorkflowConstants.STATUS_INACTIVE; } UserServiceUtil.updateStatus(deleteUserIds[i], status); } else { UserServiceUtil.deleteUser(deleteUserIds[i]); } } } protected List<AnnouncementsDelivery> getAnnouncementsDeliveries(ActionRequest actionRequest) { List<AnnouncementsDelivery> announcementsDeliveries = new ArrayList<AnnouncementsDelivery>(); for (String type : AnnouncementsEntryConstants.TYPES) { boolean email = ParamUtil.getBoolean(actionRequest, "announcementsType" + type + "Email"); boolean sms = ParamUtil.getBoolean(actionRequest, "announcementsType" + type + "Sms"); boolean website = ParamUtil.getBoolean(actionRequest, "announcementsType" + type + "Website"); AnnouncementsDelivery announcementsDelivery = new AnnouncementsDeliveryImpl(); announcementsDelivery.setType(type); announcementsDelivery.setEmail(email); announcementsDelivery.setSms(sms); announcementsDelivery.setWebsite(website); announcementsDeliveries.add(announcementsDelivery); } return announcementsDeliveries; } protected long[] getLongArray(PortletRequest portletRequest, String name) { String value = portletRequest.getParameter(name); if (value == null) { return null; } return StringUtil.split(GetterUtil.getString(value), 0L); } protected User updateLockout(ActionRequest actionRequest) throws Exception { User user = PortalUtil.getSelectedUser(actionRequest); UserServiceUtil.updateLockoutById(user.getUserId(), false); return user; } protected Object[] updateUser(ActionRequest actionRequest, ActionResponse actionResponse) throws Exception { ThemeDisplay themeDisplay = (ThemeDisplay) actionRequest.getAttribute(WebKeys.THEME_DISPLAY); User user = PortalUtil.getSelectedUser(actionRequest); boolean deleteLogo = ParamUtil.getBoolean(actionRequest, "deleteLogo"); if (deleteLogo) { UserServiceUtil.deletePortrait(user.getUserId()); } Contact contact = user.getContact(); String oldPassword = AdminUtil.getUpdateUserPassword(actionRequest, user.getUserId()); String newPassword1 = actionRequest.getParameter("password1"); String newPassword2 = actionRequest.getParameter("password2"); boolean passwordReset = ParamUtil.getBoolean(actionRequest, "passwordReset"); String reminderQueryQuestion = BeanParamUtil.getString(user, actionRequest, "reminderQueryQuestion"); if (reminderQueryQuestion.equals(UsersAdminUtil.CUSTOM_QUESTION)) { reminderQueryQuestion = BeanParamUtil.getString(user, actionRequest, "reminderQueryCustomQuestion"); } String reminderQueryAnswer = BeanParamUtil.getString(user, actionRequest, "reminderQueryAnswer"); String oldScreenName = user.getScreenName(); String screenName = BeanParamUtil.getString(user, actionRequest, "screenName"); String oldEmailAddress = user.getEmailAddress(); String emailAddress = BeanParamUtil.getString(user, actionRequest, "emailAddress"); long facebookId = user.getFacebookId(); String openId = BeanParamUtil.getString(user, actionRequest, "openId"); String oldLanguageId = user.getLanguageId(); String languageId = BeanParamUtil.getString(user, actionRequest, "languageId"); String timeZoneId = BeanParamUtil.getString(user, actionRequest, "timeZoneId"); String greeting = BeanParamUtil.getString(user, actionRequest, "greeting"); String firstName = BeanParamUtil.getString(user, actionRequest, "firstName"); String middleName = BeanParamUtil.getString(user, actionRequest, "middleName"); String lastName = BeanParamUtil.getString(user, actionRequest, "lastName"); int prefixId = BeanParamUtil.getInteger(contact, actionRequest, "prefixId"); int suffixId = BeanParamUtil.getInteger(contact, actionRequest, "suffixId"); boolean male = BeanParamUtil.getBoolean(user, actionRequest, "male", true); Calendar birthdayCal = CalendarFactoryUtil.getCalendar(); birthdayCal.setTime(contact.getBirthday()); int birthdayMonth = ParamUtil.getInteger(actionRequest, "birthdayMonth", birthdayCal.get(Calendar.MONTH)); int birthdayDay = ParamUtil.getInteger(actionRequest, "birthdayDay", birthdayCal.get(Calendar.DATE)); int birthdayYear = ParamUtil.getInteger(actionRequest, "birthdayYear", birthdayCal.get(Calendar.YEAR)); String comments = BeanParamUtil.getString(user, actionRequest, "comments"); String smsSn = BeanParamUtil.getString(contact, actionRequest, "smsSn"); String aimSn = BeanParamUtil.getString(contact, actionRequest, "aimSn"); String facebookSn = BeanParamUtil.getString(contact, actionRequest, "facebookSn"); String icqSn = BeanParamUtil.getString(contact, actionRequest, "icqSn"); String jabberSn = BeanParamUtil.getString(contact, actionRequest, "jabberSn"); String msnSn = BeanParamUtil.getString(contact, actionRequest, "msnSn"); String mySpaceSn = BeanParamUtil.getString(contact, actionRequest, "mySpaceSn"); String skypeSn = BeanParamUtil.getString(contact, actionRequest, "skypeSn"); String twitterSn = BeanParamUtil.getString(contact, actionRequest, "twitterSn"); String ymSn = BeanParamUtil.getString(contact, actionRequest, "ymSn"); String jobTitle = BeanParamUtil.getString(user, actionRequest, "jobTitle"); long[] groupIds = getLongArray(actionRequest, "groupsSearchContainerPrimaryKeys"); long[] organizationIds = getLongArray(actionRequest, "organizationsSearchContainerPrimaryKeys"); long[] roleIds = getLongArray(actionRequest, "rolesSearchContainerPrimaryKeys"); List<UserGroupRole> userGroupRoles = null; if ((actionRequest.getParameter("groupRolesGroupIds") != null) || (actionRequest.getParameter("groupRolesRoleIds") != null)) { userGroupRoles = UsersAdminUtil.getUserGroupRoles(actionRequest); } long[] userGroupIds = getLongArray(actionRequest, "userGroupsSearchContainerPrimaryKeys"); List<Address> addresses = UsersAdminUtil.getAddresses(actionRequest); List<EmailAddress> emailAddresses = UsersAdminUtil.getEmailAddresses(actionRequest); List<Phone> phones = UsersAdminUtil.getPhones(actionRequest); List<Website> websites = UsersAdminUtil.getWebsites(actionRequest); List<AnnouncementsDelivery> announcementsDeliveries = getAnnouncementsDeliveries(actionRequest); ServiceContext serviceContext = ServiceContextFactory.getInstance(User.class.getName(), actionRequest); user = UserServiceUtil.updateUser(user.getUserId(), oldPassword, newPassword1, newPassword2, passwordReset, reminderQueryQuestion, reminderQueryAnswer, screenName, emailAddress, facebookId, openId, languageId, timeZoneId, greeting, comments, firstName, middleName, lastName, prefixId, suffixId, male, birthdayMonth, birthdayDay, birthdayYear, smsSn, aimSn, facebookSn, icqSn, jabberSn, msnSn, mySpaceSn, skypeSn, twitterSn, ymSn, jobTitle, groupIds, organizationIds, roleIds, userGroupRoles, userGroupIds, addresses, emailAddresses, phones, websites, announcementsDeliveries, serviceContext); if (oldScreenName.equals(user.getScreenName())) { oldScreenName = StringPool.BLANK; } if (user.getUserId() == themeDisplay.getUserId()) { // Reset the locale HttpServletRequest request = PortalUtil.getHttpServletRequest(actionRequest); HttpServletResponse response = PortalUtil.getHttpServletResponse(actionResponse); HttpSession session = request.getSession(); session.removeAttribute(Globals.LOCALE_KEY); Locale locale = LocaleUtil.fromLanguageId(languageId); LanguageUtil.updateCookie(request, response, locale); // Clear cached portlet responses PortletSession portletSession = actionRequest.getPortletSession(); InvokerPortletImpl.clearResponses(portletSession); // Password if (PropsValues.SESSION_STORE_PASSWORD && Validator.isNotNull(newPassword1)) { portletSession.setAttribute(WebKeys.USER_PASSWORD, newPassword1, PortletSession.APPLICATION_SCOPE); } } long publicLayoutSetPrototypeId = ParamUtil.getLong(actionRequest, "publicLayoutSetPrototypeId"); long privateLayoutSetPrototypeId = ParamUtil.getLong(actionRequest, "privateLayoutSetPrototypeId"); SitesUtil.applyLayoutSetPrototypes(user.getGroup(), publicLayoutSetPrototypeId, privateLayoutSetPrototypeId, serviceContext); Company company = PortalUtil.getCompany(actionRequest); if (company.isStrangersVerify() && !oldEmailAddress.equalsIgnoreCase(emailAddress)) { SessionMessages.add(actionRequest, "verificationEmailSent"); } return new Object[] { user, oldScreenName, oldLanguageId }; } }