Java tutorial
package com.stoxx.portlet.manageusers.controller; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.Date; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Set; import javax.portlet.ActionRequest; import javax.portlet.ActionResponse; import javax.portlet.PortletException; import javax.portlet.PortletRequest; import javax.portlet.PortletSession; import javax.portlet.RenderRequest; import javax.portlet.RenderResponse; import javax.portlet.ResourceRequest; import javax.portlet.ResourceResponse; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.portlet.bind.annotation.ActionMapping; import org.springframework.web.portlet.bind.annotation.RenderMapping; import org.springframework.web.portlet.bind.annotation.ResourceMapping; import com.liferay.portal.NoSuchLayoutException; import com.liferay.portal.kernel.dao.orm.Criterion; import com.liferay.portal.kernel.dao.orm.DynamicQuery; import com.liferay.portal.kernel.dao.orm.DynamicQueryFactoryUtil; import com.liferay.portal.kernel.dao.orm.ProjectionFactoryUtil; import com.liferay.portal.kernel.dao.orm.RestrictionsFactoryUtil; import com.liferay.portal.kernel.exception.PortalException; import com.liferay.portal.kernel.exception.SystemException; import com.liferay.portal.kernel.json.JSONFactoryUtil; import com.liferay.portal.kernel.json.JSONObject; import com.liferay.portal.kernel.language.LanguageUtil; import com.liferay.portal.kernel.log.Log; import com.liferay.portal.kernel.log.LogFactoryUtil; import com.liferay.portal.kernel.portlet.LiferayPortletURL; import com.liferay.portal.kernel.servlet.SessionErrors; import com.liferay.portal.kernel.servlet.SessionMessages; import com.liferay.portal.kernel.util.GetterUtil; import com.liferay.portal.kernel.util.ListUtil; import com.liferay.portal.kernel.util.ParamUtil; import com.liferay.portal.kernel.util.PortalClassLoaderUtil; import com.liferay.portal.kernel.util.PropsUtil; import com.liferay.portal.kernel.util.StringPool; import com.liferay.portal.kernel.util.Validator; import com.liferay.portal.kernel.util.WebKeys; import com.liferay.portal.model.Layout; import com.liferay.portal.model.Role; import com.liferay.portal.model.RoleConstants; import com.liferay.portal.model.User; import com.liferay.portal.service.GroupLocalServiceUtil; import com.liferay.portal.service.LayoutLocalServiceUtil; import com.liferay.portal.service.RoleLocalServiceUtil; import com.liferay.portal.service.UserLocalServiceUtil; import com.liferay.portal.theme.ThemeDisplay; import com.liferay.portal.util.PortalUtil; import com.liferay.portlet.PortletURLFactoryUtil; import com.stoxx.digital.platform.model.EmailDomain; import com.stoxx.digital.platform.model.SalesEntry; import com.stoxx.digital.platform.service.EmailDomainLocalServiceUtil; import com.stoxx.digital.platform.service.SalesEntryLocalServiceUtil; import com.stoxx.portlet.manageusers.deligate.ManageUsersDeligate; import com.stoxx.portlet.manageusers.model.CompanyVO; import com.stoxx.portlet.manageusers.model.ManageUsersBean; import com.stoxx.portlet.manageusers.model.UserListModel; import com.stoxx.portlet.manageusers.model.UserModel; import com.stoxx.portlet.manageusers.model.UserTypeModel; import com.stoxx.portlet.manageusers.util.ManageUserUtil; import com.stoxx.service.business.userprofile.UserProfileService; import com.stoxx.service.constant.STOXXConstants; import com.stoxx.service.domain.TranslatorAgency; import com.stoxx.service.exception.STOXXException; import com.stoxx.service.util.STOXXDateUtil; import com.stoxx.service.util.SendNotificationUtil; import com.liferay.portal.kernel.cache.CacheRegistryUtil; import com.liferay.portal.kernel.cache.MultiVMPoolUtil; import com.liferay.portal.kernel.webcache.WebCachePoolUtil; @Controller @RequestMapping("VIEW") public class ManageUsersController { private static final String GENERAL_DATA = "generalData"; private static final String STAFF_DATA = "staffData"; private static final String CUSTOMER_DATA = "customerData"; private static final String SEARCH_TERM = "searchTerm"; private static final String SEARCH_CATEGORY = "selectedCategory"; private static final String TYPE = "type"; private static final String CURRENT_TILE_PAGE = "currentTilePage"; private static final String NO_OF_TILE_PAGES = "noOfTilePages"; private static final String NO = "NO"; private static final String YES = "YES"; private static final String SESSION_USER_LIST_MODEL = "sessionUserListModel"; private static final String USER_LIST_MODEL1 = "userListModel1"; private static final String CURRENT_PAGE = "currentPage"; private static final String USERTYPE_CUSTOMER = "Customer"; private static final String THE_LIFERAY_USER_ID_IS = "The Liferay User Id is ::::"; private static final String COMPANY_USER = "companyUser"; private static final String TRANSLATOR_USER = "translatorUser"; private static final String PAGE_NAME = "pageName"; private static final String GENERAL_MODEL = "generalModel"; private static final String STOXX_EXCEPTION = "STOXXException"; private static final String SYSTEM_EXCEPTION = "SystemException"; private static final String EXCEPTION = "Exception"; private static final String TRANSLATOR = "translator"; private static final String CUSTOMER = "customer"; private static final String HOME = "home"; private static final String TRANS_USERS = "transUsers"; private static final String CUST_USER = "custUser"; private static final String TRANS_COMPANY = "transCompany"; private static final String CUSTOMER_COMPANY = "customerCompany"; private static final String GENERAL_USERS = "generalUsers"; private static final String STAFF_USERS = "staffUsers"; private static final String PAGE = "page"; private static final String REDIRECTED_PAGE = "redirectedPage"; private static final String GENERAL_USER = "generalUser"; private static final String STAFF = "staff"; private static final String MANAGEUSERSBEAN = "manageUsersBean"; private static final String SHOW_HOME = "displayGroup"; private static final String SHOW_CUSTOMER_COMPANY = CUSTOMER_COMPANY; private static final String SHOW_TRANSLATOR_COMPANY = "translatorCompany"; private static final String SHOW_CUSTOMER_USER = "customerUser"; private static final String SHOW_TRANSLATOR_USER = "translatorStaff"; private static final String SHOW_PACKAGES_SUBSCRIBED = "packageCompany"; private static final String SHOW_STAFF_ROLE = "staffRoles"; private static final String USER_MODEL = "UserModel"; private static final String ROLE_CUSTOM_FIELD = "isStaffRole"; private static final String FRIENDLYURL_MANAGE_SALES_ENTRY = "/manage-sales-entry-account"; private String companyName = StringPool.BLANK; private String transCompanyName = StringPool.BLANK; private static final String SHOW_TILE_PAGINATION = "showTilePagination"; private ManageUsersDeligate manageUsersDeligate; private UserProfileService userProfileService; public void setManageUsersDeligate(ManageUsersDeligate manageUsersDeligate) { this.manageUsersDeligate = manageUsersDeligate; } public void setUserProfileService(UserProfileService userProfileService) { this.userProfileService = userProfileService; } public ManageUsersDeligate getManageUsersDeligate() { return manageUsersDeligate; } public UserProfileService getUserProfileService() { return userProfileService; } public String getCompanyName() { return companyName; } public void setCompanyName(String companyName) { this.companyName = companyName; } public String getTransCompanyName() { return transCompanyName; } public void setTransCompanyName(String transCompanyName) { this.transCompanyName = transCompanyName; } @ActionMapping(params = "action=staffData") public void invokeStaff(ActionRequest actionRequest, ActionResponse actionResponse, Model model) { log.info("Inside staff display>>> "); actionResponse.setRenderParameter(REDIRECTED_PAGE, STAFF); } @ActionMapping(params = "action=customerData") public void invokeCustomer(ActionRequest actionRequest, ActionResponse actionResponse, Model model) { log.info("Inside Customer display>>> "); actionResponse.setRenderParameter(REDIRECTED_PAGE, CUSTOMER); } @ActionMapping(params = "action=translatorData") public void invokeTranslator(ActionRequest actionRequest, ActionResponse actionResponse, Model model) { log.info("Inside translator display>>> "); actionResponse.setRenderParameter(REDIRECTED_PAGE, TRANSLATOR); } @ActionMapping(params = "action=cancel") public void cancel(ActionRequest actionRequest, ActionResponse actionResponse) { log.info("Inside cancel method>>> "); if (actionRequest.getParameter(PAGE) != null && actionRequest.getParameter(PAGE).equalsIgnoreCase(STAFF_USERS)) { actionResponse.setRenderParameter(REDIRECTED_PAGE, HOME); } else if (actionRequest.getParameter(PAGE) != null && actionRequest.getParameter(PAGE).equalsIgnoreCase(GENERAL_USERS)) { actionResponse.setRenderParameter(REDIRECTED_PAGE, HOME); } else { cancelRemaining(actionRequest, actionResponse); } } /** * @param actionRequest * @param actionResponse */ private void cancelRemaining(ActionRequest actionRequest, ActionResponse actionResponse) { if (actionRequest.getParameter(PAGE) != null && actionRequest.getParameter(PAGE).equalsIgnoreCase(CUSTOMER_COMPANY)) { actionResponse.setRenderParameter(REDIRECTED_PAGE, HOME); } else if (actionRequest.getParameter(PAGE) != null && actionRequest.getParameter(PAGE).equalsIgnoreCase(TRANS_COMPANY)) { actionResponse.setRenderParameter(REDIRECTED_PAGE, HOME); } else if (actionRequest.getParameter(PAGE) != null && actionRequest.getParameter(PAGE).equalsIgnoreCase(CUST_USER)) { actionResponse.setRenderParameter(REDIRECTED_PAGE, CUSTOMER); } else if (actionRequest.getParameter(PAGE) != null && actionRequest.getParameter(PAGE).equalsIgnoreCase(TRANS_USERS)) { actionResponse.setRenderParameter(REDIRECTED_PAGE, TRANSLATOR); } } @ActionMapping(params = "action=generalData") public void invokeGeneralUser(ActionRequest actionRequest, ActionResponse actionResponse, Model model) { log.info("Inside general display>>> "); actionResponse.setRenderParameter(REDIRECTED_PAGE, GENERAL_USER); } @ActionMapping(params = "action=search") public void searchUser(ActionRequest actionRequest, ActionResponse actionResponse, Model model) { log.info("Inside search User display>>> "); ThemeDisplay themeDisplay = (ThemeDisplay) actionRequest.getAttribute(WebKeys.THEME_DISPLAY); String userType = ParamUtil.get(actionRequest, TYPE, StringPool.BLANK); String searchCategory = ParamUtil.get(actionRequest, SEARCH_CATEGORY, StringPool.BLANK); String searchTerm = ParamUtil.get(actionRequest, SEARCH_TERM, StringPool.BLANK); log.info("the userType is " + userType + " searchCategory is " + searchCategory + " searchTerm is " + searchTerm); actionResponse.setRenderParameter(SEARCH_CATEGORY, searchCategory); actionResponse.setRenderParameter(SEARCH_TERM, searchTerm); if (CUSTOMER_DATA.equalsIgnoreCase(userType)) { actionResponse.setRenderParameter(REDIRECTED_PAGE, CUSTOMER); if (LanguageUtil.get(themeDisplay.getLocale(), "stoxx-manage-user-individual").trim() .equalsIgnoreCase(searchCategory) || LanguageUtil.get(themeDisplay.getLocale(), "stoxx-manage-user-email").trim() .equalsIgnoreCase(searchCategory)) { actionResponse.setRenderParameter(REDIRECTED_PAGE, COMPANY_USER); } } else if (STAFF_DATA.equalsIgnoreCase(userType)) { actionResponse.setRenderParameter(REDIRECTED_PAGE, STAFF); } else if (GENERAL_DATA.equalsIgnoreCase(userType)) { actionResponse.setRenderParameter(REDIRECTED_PAGE, GENERAL_USER); } } @RenderMapping(params = "redirectedPage=staff") public String displayStaff(@ModelAttribute(USER_MODEL) UserModel userModel, RenderRequest request, RenderResponse response, Model model) { log.info("staff render method is called"); ThemeDisplay themeDisplay = (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY); UserListModel userListModel = new UserListModel(); UserListModel userListModel1 = new UserListModel(); List<UserModel> subUserList = null; String searchCategory = request.getParameter(SEARCH_CATEGORY); String searchTerm = request.getParameter(SEARCH_TERM); try { userListModel.setUserList(manageUsersDeligate.getAllStaff(themeDisplay.getLocale(), themeDisplay.getCompanyId(), searchCategory, searchTerm)); } catch (STOXXException e) { log.error(e.getMessage(), e); } PortletSession session = request.getPortletSession(); String currentPage = request.getParameter(CURRENT_PAGE); currentPage = (currentPage == null) ? "1" : currentPage; if (Validator.isNotNull(userListModel.getUserList()) && userListModel.getUserList().size() > 0) { userListModel1.setUserList(userListModel.getUserList()); session.setAttribute(USER_LIST_MODEL1, userListModel1); int noOfPages = (int) Math.ceil(userListModel.getUserList().size() * 1.0 / 10); int currentPageInt = GetterUtil.getInteger(currentPage); int startIndex = (currentPageInt - 1) * 10; int endIndex = currentPageInt * 10; if (noOfPages == currentPageInt) { endIndex = userListModel.getUserList().size(); } if (noOfPages > 1) { request.setAttribute(SHOW_TILE_PAGINATION, YES); request.setAttribute(CURRENT_TILE_PAGE, currentPageInt); request.setAttribute(NO_OF_TILE_PAGES, noOfPages); } else { request.setAttribute(SHOW_TILE_PAGINATION, NO); } subUserList = userListModel.getUserList().subList(startIndex, endIndex); userListModel.setUserList(subUserList); } else { request.setAttribute(SHOW_TILE_PAGINATION, NO); } userListModel.setSearchCriterionList(ManageUserUtil.loadGeneralSearchList(themeDisplay.getLocale())); model.addAttribute("staffModel", userListModel); try { model.addAttribute("departmentList", manageUsersDeligate.getAllDepartments()); } catch (STOXXException e) { log.error("Unable to retrieve departments"); } request.setAttribute(SEARCH_CATEGORY, searchCategory); request.setAttribute(SEARCH_TERM, searchTerm); return STAFF; } @RenderMapping(params = "redirectedPage=generalUser") public String displayGeneralUser(@ModelAttribute(USER_MODEL) UserModel userModel, RenderRequest request, RenderResponse response, Model model) { log.info("general user render method is called"); ThemeDisplay themeDisplay = (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY); UserListModel userListModel = new UserListModel(); UserListModel sessionUserListModel = new UserListModel(); List<UserModel> subUserList = null; String searchCategory = request.getParameter(SEARCH_CATEGORY); String searchTerm = request.getParameter(SEARCH_TERM); try { userListModel.setUserList(manageUsersDeligate.getAllGeneralUser(themeDisplay.getLocale(), themeDisplay.getCompanyId(), searchCategory, searchTerm)); } catch (com.stoxx.service.exception.STOXXException e) { log.error(e.getMessage(), e); } PortletSession session = request.getPortletSession(); String currentPage = request.getParameter(CURRENT_PAGE); currentPage = (currentPage == null) ? "1" : currentPage; if (Validator.isNotNull(userListModel.getUserList()) && userListModel.getUserList().size() > 0) { sessionUserListModel.setUserList(userListModel.getUserList()); session.setAttribute(SESSION_USER_LIST_MODEL, sessionUserListModel); int noOfPages = (int) Math.ceil(userListModel.getUserList().size() * 1.0 / 10); int currentPageInt = GetterUtil.getInteger(currentPage); int startIndex = (currentPageInt - 1) * 10; int endIndex = currentPageInt * 10; if (noOfPages == currentPageInt) { endIndex = userListModel.getUserList().size(); } if (noOfPages > 1) { request.setAttribute(SHOW_TILE_PAGINATION, YES); request.setAttribute(CURRENT_TILE_PAGE, currentPageInt); request.setAttribute(NO_OF_TILE_PAGES, noOfPages); } else { request.setAttribute(SHOW_TILE_PAGINATION, NO); } subUserList = userListModel.getUserList().subList(startIndex, endIndex); userListModel.setUserList(subUserList); } else { request.setAttribute(SHOW_TILE_PAGINATION, NO); } userListModel.setSearchCriterionList(ManageUserUtil.loadGeneralSearchList(themeDisplay.getLocale())); request.setAttribute(SEARCH_CATEGORY, searchCategory); request.setAttribute(SEARCH_TERM, searchTerm); model.addAttribute(GENERAL_MODEL, userListModel); return GENERAL_USER; } @RenderMapping(params = "redirectedPage=customer") public String displayCustomer(RenderRequest request, RenderResponse response, Model model) { log.info("customer render method is called"); ThemeDisplay themeDisplay = (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY); Boolean flag = Boolean.TRUE; DynamicQuery dynamicQuery = DynamicQueryFactoryUtil.forClass(SalesEntry.class, PortalClassLoaderUtil.getClassLoader()); Criterion criterion = RestrictionsFactoryUtil.or(RestrictionsFactoryUtil.eq("status", 1), RestrictionsFactoryUtil.eq("status", 2)); dynamicQuery.add(criterion); String searchCategory = request.getParameter(SEARCH_CATEGORY); String searchTerm = request.getParameter(SEARCH_TERM); if (Validator.isNotNull(searchCategory) && LanguageUtil .get(themeDisplay.getLocale(), "stoxx-manage-company-name").equalsIgnoreCase(searchCategory)) { dynamicQuery.add(RestrictionsFactoryUtil.ilike("companyName", "%" + searchTerm + "%")); } if (Validator.isNotNull(searchCategory) && LanguageUtil.get(themeDisplay.getLocale(), "stoxx-manage-company-expiry-date") .equalsIgnoreCase(searchCategory)) { Date date1 = null; try { date1 = STOXXDateUtil.convertStringToDateInStoxxApplicationDateFormat(searchTerm); log.info("Expiry date is " + date1); Criterion dateRangeCriterion = RestrictionsFactoryUtil.eq("endDate", new java.sql.Timestamp(date1.getTime())); dynamicQuery.add(dateRangeCriterion); } catch (STOXXException e) { log.error(e.getMessage(), e); } } if (Validator.isNotNull(searchCategory) && LanguageUtil .get(themeDisplay.getLocale(), "stoxx-manage-company-domain").equalsIgnoreCase(searchCategory)) { DynamicQuery emaildynamicQuery = DynamicQueryFactoryUtil.forClass(EmailDomain.class, PortalClassLoaderUtil.getClassLoader()); emaildynamicQuery.add(RestrictionsFactoryUtil.ilike("domain", "%" + searchTerm + "%")); emaildynamicQuery .setProjection(ProjectionFactoryUtil.distinct(ProjectionFactoryUtil.property("salesEntryId"))); try { List<Long> salesEntryIdList = new ArrayList<Long>( EmailDomainLocalServiceUtil.dynamicQuery(emaildynamicQuery)); if (salesEntryIdList.size() == 0) { flag = Boolean.FALSE; } for (Long salesEntryId : salesEntryIdList) { dynamicQuery.add(RestrictionsFactoryUtil.eq("salesEntryId", salesEntryId)); } } catch (SystemException e) { log.error(e.getMessage(), e); } } List<SalesEntry> salesEntryList = null; CompanyVO companyVO = new CompanyVO(); List<SalesEntry> sessionSalesEntryList = null; try { if (flag) { salesEntryList = new ArrayList<SalesEntry>(SalesEntryLocalServiceUtil.dynamicQuery(dynamicQuery)); } else { salesEntryList = new ArrayList<SalesEntry>(); } if (Validator.isNotNull(salesEntryList) && salesEntryList.size() > 0) { Collections.sort(salesEntryList, new Comparator<SalesEntry>() { @Override public int compare(SalesEntry o1, SalesEntry o2) { return o1.getCompanyName().compareToIgnoreCase(o2.getCompanyName()); } }); PortletSession session = request.getPortletSession(); String currentPage = request.getParameter(CURRENT_PAGE); currentPage = (currentPage == null) ? "1" : currentPage; sessionSalesEntryList = salesEntryList; session.setAttribute("sessionSalesEntryList", sessionSalesEntryList); int noOfPages = (int) Math.ceil(salesEntryList.size() * 1.0 / 10); int currentPageInt = GetterUtil.getInteger(currentPage); int startIndex = (currentPageInt - 1) * 10; int endIndex = currentPageInt * 10; if (noOfPages == currentPageInt) { endIndex = salesEntryList.size(); } if (noOfPages > 1) { request.setAttribute(SHOW_TILE_PAGINATION, YES); request.setAttribute(CURRENT_TILE_PAGE, currentPageInt); request.setAttribute(NO_OF_TILE_PAGES, noOfPages); } else { request.setAttribute(SHOW_TILE_PAGINATION, NO); } Map<Long, Map<String, Integer>> salesEntryIdToCompanyName = new LinkedHashMap<Long, Map<String, Integer>>(); for (SalesEntry salesEntry : salesEntryList.subList(startIndex, endIndex)) { Map<String, Integer> companyNameToStatusMap = new LinkedHashMap<String, Integer>(); companyNameToStatusMap.put(salesEntry.getCompanyName(), salesEntry.getStatus()); salesEntryIdToCompanyName.put(salesEntry.getSalesEntryId(), companyNameToStatusMap); } companyVO.setCompanyMap(salesEntryIdToCompanyName); } else { request.setAttribute(SHOW_TILE_PAGINATION, NO); } companyVO.setSearchCriterionList(ManageUserUtil.loadSearchListForCustomer(themeDisplay.getLocale())); } catch (SystemException e) { log.error(SYSTEM_EXCEPTION + e); } request.setAttribute(SEARCH_CATEGORY, searchCategory); request.setAttribute(SEARCH_TERM, searchTerm); model.addAttribute("companyVO", companyVO); return SHOW_CUSTOMER_COMPANY; } @ResourceMapping("staffPaginate") public String staffPaginate(@ModelAttribute(USER_MODEL) UserModel userModel, ResourceRequest request, ResourceResponse response, Model model) { log.info("staffPaginate >>>>>"); List<UserModel> subUserList = null; UserListModel userListModel = null; UserListModel userListModel1 = null; String currentPage = request.getParameter(CURRENT_PAGE); currentPage = (currentPage == null) ? "1" : currentPage; PortletSession session = request.getPortletSession(); if (session != null && session.getAttribute(USER_LIST_MODEL1) != null) { userListModel = (UserListModel) session.getAttribute(USER_LIST_MODEL1); userListModel1 = new UserListModel(); userListModel1.setUserList(userListModel.getUserList()); session.setAttribute(USER_LIST_MODEL1, userListModel1); } try { if (userListModel != null && Validator.isNotNull(userListModel.getUserList()) && userListModel.getUserList().size() > 0) { int noOfPages = (int) Math.ceil(userListModel.getUserList().size() * 1.0 / 10); int currentPageInt = GetterUtil.getInteger(currentPage); int startIndex = (currentPageInt - 1) * 10; int endIndex = currentPageInt * 10; if (noOfPages == currentPageInt) { endIndex = userListModel.getUserList().size(); } if (noOfPages > 1) { request.setAttribute(SHOW_TILE_PAGINATION, YES); request.setAttribute(CURRENT_TILE_PAGE, currentPageInt); request.setAttribute(NO_OF_TILE_PAGES, noOfPages); } else { request.setAttribute(SHOW_TILE_PAGINATION, NO); } log.info("startIndex >>> " + startIndex); log.info("endIndex >>> " + endIndex); subUserList = userListModel.getUserList().subList(startIndex, endIndex); userListModel.setUserList(subUserList); } else { request.setAttribute(SHOW_TILE_PAGINATION, NO); } } catch (Exception e1) { log.error(EXCEPTION, e1); } model.addAttribute("staffModel", userListModel); return "recordDetails"; } @ResourceMapping(value = "updateDepartment") public void updateDepartment(@ModelAttribute(USER_MODEL) UserModel userModel, ResourceRequest request, ResourceResponse response) throws IOException { log.info("Updating to department: " + userModel.getDepartmentName() + " for emailaddress: " + userModel.getEmailAddress()); ThemeDisplay themeDisplay = (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY); try { manageUsersDeligate.updateUserDepartment(userModel); JSONObject jsonObject = createJSONResult("SUCCESS", LanguageUtil.get(themeDisplay.getLocale(), "stoxx-department-save-success-message")); response.getWriter().print(jsonObject.toString()); } catch (STOXXException e) { log.error( "Unable to save department change [emailAddress=" + userModel.getEmailAddress() + " department=" + userModel.getDepartmentName() + "] " + e.getExpCode() + " - " + e.getMessage()); JSONObject jsonObject = createJSONResult("FAILURE", LanguageUtil.get(themeDisplay.getLocale(), "stoxx-department-save-failure-message")); response.getWriter().print(jsonObject.toString()); } } @RenderMapping(params = "action=editUserTypeForm") public String editUserTypeForm(@RequestParam(required = true) String emailAddress, RenderRequest request, RenderResponse response, Model model) { try { model.addAttribute("userTypeModel", manageUsersDeligate.getUserTypeModel(emailAddress)); model.addAttribute("departmentList", manageUsersDeligate.getAllDepartments()); List<String> userTypes = new ArrayList<String>(2); userTypes.add(STOXXConstants.STOXX_STAFF_USER); userTypes.add(USERTYPE_CUSTOMER); model.addAttribute("userTypes", userTypes); } catch (STOXXException e) { log.error("Unable to fetch department/userTypeModel" + e); } return "editUserTypeForm"; } @ActionMapping(params = "action=saveUserType") public void saveUserType(@ModelAttribute("userTypeModel") UserTypeModel userTypeModel, ActionRequest request, ActionResponse response, Model model) throws IOException { log.info("Updating user type with information " + userTypeModel.toString()); ThemeDisplay themeDisplay = (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY); if (USERTYPE_CUSTOMER.equalsIgnoreCase(userTypeModel.getUserType())) { try { Layout layout = LayoutLocalServiceUtil.getFriendlyURLLayout(themeDisplay.getScopeGroupId(), true, FRIENDLYURL_MANAGE_SALES_ENTRY); LiferayPortletURL displayUsersPortletURL = PortletURLFactoryUtil.create(request, "STOXXPreRegCustomerAdminPortlet_WAR_STOXXPreRegCustomerAdminPortlet10", layout.getPlid(), PortletRequest.RENDER_PHASE); displayUsersPortletURL.setParameter("action", "changeUserType"); displayUsersPortletURL.setParameter("emailAddress", userTypeModel.getEmailAddress()); response.sendRedirect(displayUsersPortletURL.toString()); } catch (NoSuchLayoutException ex) { log.error("Users listing layout not found with friendly url " + FRIENDLYURL_MANAGE_SALES_ENTRY); } catch (PortalException e) { log.error(e.getMessage()); } catch (SystemException e) { log.error(e.getMessage()); } } else { try { manageUsersDeligate.updateUserType(userTypeModel, themeDisplay); SessionMessages.add(request, "requestProcessed", LanguageUtil.get(themeDisplay.getLocale(), "stoxx-usertype-save-success-message")); } catch (STOXXException e) { log.error("Unable to update user type due to:" + e.getExpCode() + ":" + e.getExpMsg() + e); SessionErrors.add(request, "failed"); } LiferayPortletURL redirectUrl = PortletURLFactoryUtil.create(request, PortalUtil.getPortletId(request), themeDisplay.getPlid(), PortletRequest.RENDER_PHASE); redirectUrl.setParameter(REDIRECTED_PAGE, GENERAL_USER); response.sendRedirect(redirectUrl.toString()); } } private JSONObject createJSONResult(String result, String message) { JSONObject jsonObject = JSONFactoryUtil.createJSONObject(); jsonObject.put("result", result); jsonObject.put("message", message); return jsonObject; } @ResourceMapping("customeCompanyPaginate") public String customeCompanyPaginate(ResourceRequest request, ResourceResponse response, Model model) { log.info("customeCompanyPaginate >>>>>"); ThemeDisplay themeDisplay = (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY); List<SalesEntry> sessionSalesEntryList = null; List<SalesEntry> salesEntryList = null; CompanyVO companyVO = new CompanyVO(); PortletSession session = request.getPortletSession(); if (session != null && session.getAttribute("sessionSalesEntryList") != null) { sessionSalesEntryList = (List<SalesEntry>) session.getAttribute("sessionSalesEntryList"); salesEntryList = sessionSalesEntryList; } try { if (Validator.isNotNull(salesEntryList) && salesEntryList.size() > 0) { Collections.sort(salesEntryList, new Comparator<SalesEntry>() { @Override public int compare(SalesEntry o1, SalesEntry o2) { return o1.getCompanyName().compareToIgnoreCase(o2.getCompanyName()); } }); String currentPage = request.getParameter(CURRENT_PAGE); currentPage = (currentPage == null) ? "1" : currentPage; int noOfPages = (int) Math.ceil(salesEntryList.size() * 1.0 / 10); int currentPageInt = GetterUtil.getInteger(currentPage); int startIndex = (currentPageInt - 1) * 10; int endIndex = currentPageInt * 10; if (noOfPages == currentPageInt) { endIndex = salesEntryList.size(); } if (noOfPages > 1) { request.setAttribute(SHOW_TILE_PAGINATION, YES); request.setAttribute(CURRENT_TILE_PAGE, currentPageInt); request.setAttribute(NO_OF_TILE_PAGES, noOfPages); } else { request.setAttribute(SHOW_TILE_PAGINATION, NO); } Map<Long, Map<String, Integer>> salesEntryIdToCompanyName = new LinkedHashMap<Long, Map<String, Integer>>(); for (SalesEntry salesEntry : salesEntryList.subList(startIndex, endIndex)) { Map<String, Integer> companyNameToStatusMap = new LinkedHashMap<String, Integer>(); companyNameToStatusMap.put(salesEntry.getCompanyName(), salesEntry.getStatus()); salesEntryIdToCompanyName.put(salesEntry.getSalesEntryId(), companyNameToStatusMap); } companyVO.setCompanyMap(salesEntryIdToCompanyName); } else { request.setAttribute(SHOW_TILE_PAGINATION, NO); } companyVO.setSearchCriterionList(ManageUserUtil.loadSearchListForCustomer(themeDisplay.getLocale())); } catch (Exception e1) { log.error(EXCEPTION, e1); } model.addAttribute("companyVO", companyVO); return "customerCompanyPaginate"; } @RenderMapping(params = "action=companyPackageAction") public String companyPackageAction(@RequestParam long salesEntryId, @RequestParam String companyName, @ModelAttribute(MANAGEUSERSBEAN) ManageUsersBean manageUsersBean, RenderRequest renderRequest, RenderResponse renderResponse, Model model) { log.info("Inside companyPackageAction method>>>> "); try { List<String> allPackageNames = manageUsersDeligate.getDistinctPackageNames(); String packagesSubscribed = manageUsersDeligate.getSubscibedpackagesForCompany(companyName); manageUsersBean.setAllPackageNames(allPackageNames); manageUsersBean.setCompanyName(companyName); manageUsersBean.setPackagesSubscribedByCommaSeperation(packagesSubscribed); manageUsersBean.setSalesEntryID(salesEntryId); } catch (Exception e) { log.error(EXCEPTION + e); } finally { model.addAttribute("manageUserVO", manageUsersBean); } return SHOW_PACKAGES_SUBSCRIBED; } @RenderMapping(params = "action=savePackageNames") public String savePackageNamesToCompany(@ModelAttribute(MANAGEUSERSBEAN) ManageUsersBean manageUsersBean, RenderRequest renderRequest, RenderResponse renderResponse, Model model) { log.info("Inside savePackageNamesToCompany method>>>> "); ThemeDisplay themeDisplay = (ThemeDisplay) renderRequest.getAttribute(WebKeys.THEME_DISPLAY); try { log.info("The added packages are" + manageUsersBean.getAddedPackageNames()); log.info("The deleted packages are" + manageUsersBean.getDeletedPackageNames()); log.info("The sales entry id is" + manageUsersBean.getSalesEntryID()); log.info("The updated packages are" + manageUsersBean.getNewPackageNames()); List<String> newPackagesSubscribedList = new ArrayList<String>(); List<String> alreadyPackagesSubscribedList = new ArrayList<String>(); List<String> deletedUnscribedPackageNamesList = new ArrayList<String>(); deletedUnscribedPackageNamesList = deleteUnscribedList(manageUsersBean, deletedUnscribedPackageNamesList); log.info("The deletedUnscribedPackageNamesList is" + deletedUnscribedPackageNamesList); newPackagesSubscribedList = getSubscribedPackages(manageUsersBean, newPackagesSubscribedList); log.info("The company name is " + manageUsersBean.getCompanyName()); manageUsersBean.setAllPackageNames(manageUsersBean.getAllPackageNames()); manageUsersBean.setCompanyName(manageUsersBean.getCompanyName()); manageUsersBean.setPackagesSubscribedByCommaSeperation( manageUsersBean.getPackagesSubscribedByCommaSeperation()); DynamicQuery dynamicQuery = DynamicQueryFactoryUtil.forClass(SalesEntry.class, PortalClassLoaderUtil.getClassLoader()); Criterion criterion = RestrictionsFactoryUtil.eq("companyName", manageUsersBean.getCompanyName()); dynamicQuery.add(criterion); List<SalesEntry> salesEntryList = null; List<Long> liferrayUserIDsForCustomer = new ArrayList<Long>(); salesEntryList = SalesEntryLocalServiceUtil.dynamicQuery(dynamicQuery); if (Validator.isNotNull(salesEntryList) && salesEntryList.size() > 0) { SalesEntry salesEntry = salesEntryList.get(0); if (!Validator.isBlank(salesEntry.getPackageNames())) { if (salesEntry.getPackageNames().contains(StringPool.COMMA)) { alreadyPackagesSubscribedList = Arrays.asList(salesEntry.getPackageNames().split(",")); } else { alreadyPackagesSubscribedList.add(salesEntry.getPackageNames()); } } salesEntry.setPackageNames(manageUsersBean.getNewPackageNames()); SalesEntryLocalServiceUtil.updateSalesEntry(salesEntry); List<String> customerEmaiAddressList = userProfileService .getLicensedUsersEmailAddress(manageUsersBean.getSalesEntryID()); if (Validator.isNotNull(customerEmaiAddressList) && customerEmaiAddressList.size() > 0) { for (String emailAddress : customerEmaiAddressList) { User user = UserLocalServiceUtil.fetchUserByEmailAddress(themeDisplay.getCompanyId(), emailAddress); if (Validator.isNotNull(user)) { liferrayUserIDsForCustomer.add(user.getUserId()); } } } log.info("The new packagesSubscribedList is" + newPackagesSubscribedList); log.info("The already packagesSubscribedList is" + alreadyPackagesSubscribedList); log.info("The deletedUnscribedPackageNamesList is" + deletedUnscribedPackageNamesList); log.info("The no of users under this group is" + liferrayUserIDsForCustomer.size()); addRole(themeDisplay, newPackagesSubscribedList, alreadyPackagesSubscribedList, liferrayUserIDsForCustomer); removeRoles(themeDisplay, deletedUnscribedPackageNamesList, liferrayUserIDsForCustomer); SessionMessages.add(renderRequest, "packages-subscribed"); } } catch (Exception e) { log.error(SYSTEM_EXCEPTION + e); } finally { List<String> allPackageNames; try { allPackageNames = manageUsersDeligate.getDistinctPackageNames(); String packagesSubscribed = manageUsersDeligate .getSubscibedpackagesForCompany(manageUsersBean.getCompanyName()); manageUsersBean.setAllPackageNames(allPackageNames); manageUsersBean.setPackagesSubscribedByCommaSeperation(packagesSubscribed); model.addAttribute("manageUserVO", manageUsersBean); } catch (STOXXException e) { log.error(e.getMessage(), e); } } return SHOW_PACKAGES_SUBSCRIBED; } /** * @param manageUsersBean * @param deletedUnscribedPackageNamesList * @return */ private List<String> deleteUnscribedList(ManageUsersBean manageUsersBean, List<String> deletedUnscribedPackageNamesList) { if (Validator.isNotNull(manageUsersBean.getDeletedPackageNames()) && !manageUsersBean.getDeletedPackageNames().isEmpty()) { if (manageUsersBean.getDeletedPackageNames().contains(StringPool.COMMA)) { deletedUnscribedPackageNamesList = Arrays .asList(manageUsersBean.getDeletedPackageNames().split(",")); } else { deletedUnscribedPackageNamesList.add(manageUsersBean.getDeletedPackageNames()); } } return deletedUnscribedPackageNamesList; } /** * @param manageUsersBean * @param newPackagesSubscribedList * @return */ private List<String> getSubscribedPackages(ManageUsersBean manageUsersBean, List<String> newPackagesSubscribedList) { if (Validator.isNotNull(manageUsersBean.getAddedPackageNames()) && !manageUsersBean.getAddedPackageNames().isEmpty()) { if (manageUsersBean.getAddedPackageNames().contains(StringPool.COMMA)) { newPackagesSubscribedList = Arrays.asList(manageUsersBean.getAddedPackageNames().split(",")); } else { newPackagesSubscribedList.add(manageUsersBean.getAddedPackageNames()); } } return newPackagesSubscribedList; } /** * @param themeDisplay * @param deletedUnscribedPackageNamesList * @param liferrayUserIDsForCustomer * @throws PortalException * @throws SystemException */ private void removeRoles(ThemeDisplay themeDisplay, List<String> deletedUnscribedPackageNamesList, List<Long> liferrayUserIDsForCustomer) throws PortalException, SystemException { for (String packageName : deletedUnscribedPackageNamesList) { long[] roleIds = new long[] { RoleLocalServiceUtil.getRole(themeDisplay.getCompanyId(), packageName).getRoleId() }; for (long userId : liferrayUserIDsForCustomer) { log.info("The packageName to be unset as role >>> is" + packageName); log.info("Unsetting user roles"); log.info("The userId is " + userId + "in which >>>" + RoleLocalServiceUtil.getRole(themeDisplay.getCompanyId(), packageName).getName() + " role has to be unassigned"); RoleLocalServiceUtil.unsetUserRoles(userId, roleIds); } clearCacheFromServer(); } } /** * @param themeDisplay * @param newPackagesSubscribedList * @param alreadyPackagesSubscribedList * @param liferrayUserIDsForCustomer * @throws PortalException * @throws SystemException */ private void addRole(ThemeDisplay themeDisplay, List<String> newPackagesSubscribedList, List<String> alreadyPackagesSubscribedList, List<Long> liferrayUserIDsForCustomer) throws PortalException, SystemException { for (String packageName : newPackagesSubscribedList) { if (!(alreadyPackagesSubscribedList.contains(packageName))) { log.info("The packageName to be set as role >>> is" + packageName); for (long userId : liferrayUserIDsForCustomer) { log.info("The userId is " + userId + "in which >>>" + RoleLocalServiceUtil.getRole(themeDisplay.getCompanyId(), packageName).getName() + " role has to be assigned"); RoleLocalServiceUtil.addUserRole(userId, RoleLocalServiceUtil.getRole(themeDisplay.getCompanyId(), packageName).getRoleId()); } clearCacheFromServer(); } } } @RenderMapping(params = "redirectedPage=translator") public String displayTranslator(RenderRequest request, RenderResponse response, Model model) { List<TranslatorAgency> translatorCompanyList = null; List<TranslatorAgency> sessiontranslatorCompanyList = null; CompanyVO companyVO = new CompanyVO(); ThemeDisplay themeDisplay = (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY); try { translatorCompanyList = manageUsersDeligate.getVendorCompanyList(); log.info("Vendor company List>>>> " + translatorCompanyList.size()); Map<Long, Map<String, Integer>> translatorCompanyMap = new HashMap<Long, Map<String, Integer>>(); if (Validator.isNotNull(translatorCompanyList) && translatorCompanyList.size() > 0) { PortletSession session = request.getPortletSession(); String currentPage = request.getParameter(CURRENT_PAGE); currentPage = (currentPage == null) ? "1" : currentPage; sessiontranslatorCompanyList = translatorCompanyList; session.setAttribute("sessiontranslatorCompanyList", sessiontranslatorCompanyList); int noOfPages = (int) Math.ceil(translatorCompanyList.size() * 1.0 / 10); int currentPageInt = GetterUtil.getInteger(currentPage); int startIndex = (currentPageInt - 1) * 10; int endIndex = currentPageInt * 10; if (noOfPages == currentPageInt) { endIndex = translatorCompanyList.size(); } if (noOfPages > 1) { request.setAttribute(SHOW_TILE_PAGINATION, YES); request.setAttribute(CURRENT_TILE_PAGE, currentPageInt); request.setAttribute(NO_OF_TILE_PAGES, noOfPages); } else { request.setAttribute(SHOW_TILE_PAGINATION, NO); } for (TranslatorAgency translatorAgency : translatorCompanyList.subList(startIndex, endIndex)) { Map<String, Integer> translatorCompanyNameToStatus = new HashMap<String, Integer>(); translatorCompanyNameToStatus.put(translatorAgency.getCompanyName(), translatorAgency.getCompanyStatus()); translatorCompanyMap.put(translatorAgency.getTranslatorAgencyId(), translatorCompanyNameToStatus); } companyVO.setCompanyMap(translatorCompanyMap); } } catch (STOXXException e) { log.error(STOXX_EXCEPTION + e); } model.addAttribute("transVO", companyVO); return SHOW_TRANSLATOR_COMPANY; } @ResourceMapping("translatorCompanyPaginate") public String translatorCompanyPaginate(ResourceRequest request, ResourceResponse response, Model model) { log.info("translatorCompanyPaginate >>>>>"); ThemeDisplay themeDisplay = (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY); List<TranslatorAgency> sessionSalesEntryList = null; List<TranslatorAgency> translatorCompanyList = null; CompanyVO companyVO = new CompanyVO(); PortletSession session = request.getPortletSession(); if (session != null && session.getAttribute("sessiontranslatorCompanyList") != null) { sessionSalesEntryList = (List<TranslatorAgency>) session.getAttribute("sessiontranslatorCompanyList"); translatorCompanyList = sessionSalesEntryList; } try { Map<Long, Map<String, Integer>> translatorCompanyMap = new HashMap<Long, Map<String, Integer>>(); if (Validator.isNotNull(translatorCompanyList) && translatorCompanyList.size() > 0) { String currentPage = request.getParameter(CURRENT_PAGE); currentPage = (currentPage == null) ? "1" : currentPage; int noOfPages = (int) Math.ceil(translatorCompanyList.size() * 1.0 / 10); int currentPageInt = GetterUtil.getInteger(currentPage); int startIndex = (currentPageInt - 1) * 10; int endIndex = currentPageInt * 10; if (noOfPages == currentPageInt) { endIndex = translatorCompanyList.size(); } if (noOfPages > 1) { request.setAttribute(SHOW_TILE_PAGINATION, YES); request.setAttribute(CURRENT_TILE_PAGE, currentPageInt); request.setAttribute(NO_OF_TILE_PAGES, noOfPages); } else { request.setAttribute(SHOW_TILE_PAGINATION, NO); } for (TranslatorAgency translatorAgency : translatorCompanyList.subList(startIndex, endIndex)) { Map<String, Integer> translatorCompanyNameToStatus = new HashMap<String, Integer>(); translatorCompanyNameToStatus.put(translatorAgency.getCompanyName(), translatorAgency.getCompanyStatus()); translatorCompanyMap.put(translatorAgency.getTranslatorAgencyId(), translatorCompanyNameToStatus); } companyVO.setCompanyMap(translatorCompanyMap); } } catch (Exception e1) { log.error(EXCEPTION, e1); } model.addAttribute("transVO", companyVO); return "translatorCompanyPaginate"; } @ResourceMapping("generalUserPaginate") public String generalUserPaginate(@ModelAttribute(USER_MODEL) UserModel userModel, ResourceRequest request, ResourceResponse response, Model model) { List<UserModel> subUserList = null; UserListModel userListModel = null; UserListModel sessionUserListModel = null; String currentPage = request.getParameter(CURRENT_PAGE); currentPage = (currentPage == null) ? "1" : currentPage; PortletSession session = request.getPortletSession(); if (session != null && session.getAttribute(SESSION_USER_LIST_MODEL) != null) { userListModel = (UserListModel) session.getAttribute(SESSION_USER_LIST_MODEL); sessionUserListModel = new UserListModel(); sessionUserListModel.setUserList(userListModel.getUserList()); session.setAttribute(SESSION_USER_LIST_MODEL, sessionUserListModel); } try { if (userListModel != null && Validator.isNotNull(userListModel.getUserList()) && userListModel.getUserList().size() > 0) { int noOfPages = (int) Math.ceil(userListModel.getUserList().size() * 1.0 / 10); int currentPageInt = GetterUtil.getInteger(currentPage); int startIndex = (currentPageInt - 1) * 10; int endIndex = currentPageInt * 10; if (noOfPages == currentPageInt) { endIndex = userListModel.getUserList().size(); } if (noOfPages > 1) { request.setAttribute(SHOW_TILE_PAGINATION, YES); request.setAttribute(CURRENT_TILE_PAGE, currentPageInt); request.setAttribute(NO_OF_TILE_PAGES, noOfPages); } else { request.setAttribute(SHOW_TILE_PAGINATION, NO); } log.info("startIndex >>> " + startIndex); log.info("endIndex >>> " + endIndex); subUserList = userListModel.getUserList().subList(startIndex, endIndex); userListModel.setUserList(subUserList); } else { request.setAttribute(SHOW_TILE_PAGINATION, NO); } } catch (Exception e1) { log.error(EXCEPTION, e1); } model.addAttribute(GENERAL_MODEL, userListModel); return "generalUserPaginate"; } @RenderMapping(params = "action=editUserRole") public String editStaffAction(@RequestParam String emailAddress, @ModelAttribute(USER_MODEL) UserModel userModel, RenderRequest renderRequest, RenderResponse renderResponse, Model model) { log.info("Inside render phase of showStaffRoles>>>>"); ThemeDisplay themeDisplay = (ThemeDisplay) renderRequest.getAttribute(WebKeys.THEME_DISPLAY); try { User user = UserLocalServiceUtil.fetchUserByEmailAddress(themeDisplay.getCompanyId(), emailAddress); long userId = user.getUserId(); log.info("the user iod is>>>>>>>>>>>>>>" + userId); log.info("the group id is" + themeDisplay.getScopeGroupId()); List<Role> rolelist1 = RoleLocalServiceUtil.getUserRelatedRoles(userId, themeDisplay.getScopeGroupId()); List<Role> allRoleslist = RoleLocalServiceUtil.getTypeRoles(RoleConstants.TYPE_REGULAR); List<String> userRoles = new ArrayList<String>(); List<String> allRoles = new ArrayList<String>(); List<String> inheritedRoleNames = new ArrayList<String>(); long[] userGroupIds = user.getUserGroupIds(); log.info("the usergroupIds are >> " + Arrays.toString(userGroupIds)); for (long groupName : userGroupIds) { long groupId = GroupLocalServiceUtil .getGroup(themeDisplay.getCompanyId(), String.valueOf(groupName)).getGroupId(); List<Role> roles = RoleLocalServiceUtil.getGroupRoles(groupId); for (Role role : roles) { inheritedRoleNames.add(role.getName()); } } for (Role role : rolelist1) { log.info("the role is " + role.getName()); userRoles.add(role.getName()); } for (Role role : allRoleslist) { if (GetterUtil .getBoolean(role.getExpandoBridge().getAttribute(ROLE_CUSTOM_FIELD)) == Boolean.TRUE) { allRoles.add(role.getName()); } } log.info("inheritedRoleNames size after is >>>>" + inheritedRoleNames.size()); List<String> roleNamesToIgnore = ListUtil.fromArray(RoleConstants.SYSTEM_ROLES); roleNamesToIgnore.addAll(ListUtil.fromArray(PropsUtil.getArray("stoxx.regular.roles.to.ignore"))); allRoles.removeAll(roleNamesToIgnore); userModel.setUserRoles(userRoles); userModel.setAllUserRoles(allRoles); userModel.setLiferayUserId(userId); userModel.setInheritedRoles(inheritedRoleNames); } catch (Exception e) { log.error(EXCEPTION, e); } model.addAttribute("staffRoleModel", userModel); return SHOW_STAFF_ROLE; } @RenderMapping public String showHomePage(RenderRequest renderRequest, RenderResponse renderResponse) { log.info("Inside render phase>>>>"); return SHOW_HOME; } @RenderMapping(params = "redirectedPage=home") public String showFirstPage(RenderRequest renderRequest, RenderResponse renderResponse) { return SHOW_HOME; } @ModelAttribute(USER_MODEL) public UserModel getCommandObject() { return new UserModel(); } @ModelAttribute("companyVO") public CompanyVO getCompanyVO() { return new CompanyVO(); } @ModelAttribute("userTypeModel") public UserTypeModel getUserTypeModel() { return new UserTypeModel(); } @ActionMapping(params = "action=suspendCompanyAction") public void suspendCompanyAction(@RequestParam long salesEntryId, @ModelAttribute(MANAGEUSERSBEAN) ManageUsersBean manageUsersBean, ActionRequest actionRequest, ActionResponse actionResponse, Model model) { ThemeDisplay themeDisplay = (ThemeDisplay) actionRequest.getAttribute(WebKeys.THEME_DISPLAY); log.info("Inside company suspend method>>>>"); try { SalesEntry salesEntry = SalesEntryLocalServiceUtil.fetchSalesEntry(salesEntryId); salesEntry.setStatus(1); SalesEntryLocalServiceUtil.updateSalesEntry(salesEntry); List<String> licensedCustomers = null; List<String> licensedCustomersUserIds = new ArrayList<String>(); if (Validator.isNotNull(salesEntry) && Validator.isNotNull(salesEntry.getSalesEntryId()) && salesEntry.getSalesEntryId() > 0) { licensedCustomers = userProfileService.getLicensedUsersEmailAddress(salesEntryId); } if (Validator.isNotNull(licensedCustomers) && licensedCustomers.size() > 0) { for (String emailAddress : licensedCustomers) { User user = UserLocalServiceUtil.fetchUserByEmailAddress(themeDisplay.getCompanyId(), emailAddress); if (Validator.isNotNull(user)) { licensedCustomersUserIds.add(String.valueOf(user.getUserId())); } } } log.info("licensedCustomersUserIds size" + licensedCustomersUserIds.size()); if (Validator.isNotNull(licensedCustomersUserIds) && licensedCustomersUserIds.size() > 0) { for (String userID : licensedCustomersUserIds) { log.info(THE_LIFERAY_USER_ID_IS + userID); manageUsersDeligate.suspendUser(userID); } } } catch (SystemException e) { log.error(SYSTEM_EXCEPTION, e); } catch (STOXXException e) { log.error(STOXX_EXCEPTION, e); } } @RenderMapping(params = "action=staffRoles") public String updateRoleAssignmentForStaff(@ModelAttribute("staffRoleModel") UserModel userModel, RenderRequest renderRequest, RenderResponse renderResponse, Model model) { log.info("Inside user updateRoleAssignmentForStaff method>>>> "); ThemeDisplay themeDisplay = (ThemeDisplay) renderRequest.getAttribute(WebKeys.THEME_DISPLAY); try { log.info("the updated roles checked are" + userModel.getRolesAssigned()); log.info("the User id " + userModel.getLiferayUserId()); List<Role> rolelist = RoleLocalServiceUtil.getUserRelatedRoles(userModel.getLiferayUserId(), themeDisplay.getScopeGroupId()); List<String> userRoles = new ArrayList<String>(); for (Role role : rolelist) { userRoles.add(role.getName()); } userModel.setUserRoles(userRoles); List<String> assignedUserRoleNames = new ArrayList<String>(); List<String> assignedUnsetUserRoleNames = new ArrayList<String>(); List<String> selectedUserRoles = new ArrayList<String>(); assignedUserRoleNames = assignRoles(userModel, assignedUserRoleNames); assignedUnsetUserRoleNames = unsetRoles(userModel, assignedUnsetUserRoleNames); addRole(userModel, themeDisplay, assignedUserRoleNames); removeRole(userModel, themeDisplay, assignedUnsetUserRoleNames); List<Role> allRoleslist = RoleLocalServiceUtil.getTypeRoles(RoleConstants.TYPE_REGULAR); List<Role> rolelist1 = RoleLocalServiceUtil.getUserRelatedRoles(userModel.getLiferayUserId(), themeDisplay.getScopeGroupId()); List<String> userRoles1 = new ArrayList<String>(); List<String> allRoles = new ArrayList<String>(); List<String> inheritedRoleNames = new ArrayList<String>(); log.info("inheritedRoleNames size before is >>>>" + inheritedRoleNames.size()); for (Role role : rolelist1) { userRoles1.add(role.getName()); } for (Role role : allRoleslist) { if (GetterUtil .getBoolean(role.getExpandoBridge().getAttribute(ROLE_CUSTOM_FIELD)) == Boolean.TRUE) { allRoles.add(role.getName()); } } User user = UserLocalServiceUtil.fetchUser(userModel.getLiferayUserId()); long[] userGroupIds = user.getUserGroupIds(); log.info("the usergroupIds are >> " + Arrays.toString(userGroupIds)); for (long groupName : userGroupIds) { long groupId = GroupLocalServiceUtil .getGroup(themeDisplay.getCompanyId(), String.valueOf(groupName)).getGroupId(); List<Role> roles = RoleLocalServiceUtil.getGroupRoles(groupId); for (Role role : roles) { inheritedRoleNames.add(role.getName()); } } log.info("inheritedRoleNames size after is >>>>" + inheritedRoleNames.size()); List<String> roleNamesToIgnore = ListUtil.fromArray(RoleConstants.SYSTEM_ROLES); roleNamesToIgnore.addAll(ListUtil.fromArray(PropsUtil.getArray("stoxx.regular.roles.to.ignore"))); allRoles.removeAll(roleNamesToIgnore); userModel.setUserRoles(userRoles1); userModel.setAllUserRoles(allRoles); userModel.setLiferayUserId(userModel.getLiferayUserId()); userModel.setInheritedRoles(inheritedRoleNames); selectedUserRoles.addAll(userRoles1); selectedUserRoles.addAll(inheritedRoleNames); userModel.setSelectedUserRoles(selectedUserRoles); SessionMessages.add(renderRequest, "roles-updated"); } catch (Exception e) { log.error(SYSTEM_EXCEPTION, e); } model.addAttribute("staffRoleModel", userModel); return SHOW_STAFF_ROLE; } /** * @param userModel * @param themeDisplay * @param assignedUnsetUserRoleNames * @throws PortalException * @throws SystemException */ private void removeRole(UserModel userModel, ThemeDisplay themeDisplay, List<String> assignedUnsetUserRoleNames) throws PortalException, SystemException { for (String roleName : assignedUnsetUserRoleNames) { log.info("the unassigned role names unchecked are" + roleName); if (userModel.getUserRoles().contains(roleName)) { long[] roleIds = new long[] { RoleLocalServiceUtil.getRole(themeDisplay.getCompanyId(), roleName).getRoleId() }; log.info("Unsetting user roles"); RoleLocalServiceUtil.unsetUserRoles(userModel.getLiferayUserId(), roleIds); } } clearCacheFromServer(); } /** * @param userModel * @param themeDisplay * @param assignedUserRoleNames * @throws SystemException * @throws PortalException */ private void addRole(UserModel userModel, ThemeDisplay themeDisplay, List<String> assignedUserRoleNames) throws SystemException, PortalException { for (String roleName : assignedUserRoleNames) { log.info("the assigned role names checked are" + roleName); if (!(userModel.getUserRoles().contains(roleName))) { RoleLocalServiceUtil.addUserRole(userModel.getLiferayUserId(), RoleLocalServiceUtil.getRole(themeDisplay.getCompanyId(), roleName)); } } clearCacheFromServer(); } /** * @param userModel * @param assignedUnsetUserRoleNames * @return */ private List<String> unsetRoles(UserModel userModel, List<String> assignedUnsetUserRoleNames) { if (Validator.isNotNull(userModel.getDeletedRoles()) && !userModel.getDeletedRoles().isEmpty()) { if (userModel.getDeletedRoles().contains(StringPool.COMMA)) { assignedUnsetUserRoleNames = Arrays.asList(userModel.getDeletedRoles().split(",")); } else { assignedUnsetUserRoleNames.add(userModel.getDeletedRoles()); } } return assignedUnsetUserRoleNames; } /** * @param userModel * @param assignedUserRoleNames * @return */ private List<String> assignRoles(UserModel userModel, List<String> assignedUserRoleNames) { if (Validator.isNotNull(userModel.getAddedRoles()) && !userModel.getAddedRoles().isEmpty()) { if (userModel.getAddedRoles().contains(StringPool.COMMA)) { assignedUserRoleNames = Arrays.asList(userModel.getAddedRoles().split(",")); } else { assignedUserRoleNames.add(userModel.getAddedRoles()); } } return assignedUserRoleNames; } @ActionMapping(params = "action=deleteCompanyAction") public void deleteCompanyAction(@RequestParam long salesEntryId, @ModelAttribute(MANAGEUSERSBEAN) ManageUsersBean manageUsersBean, ActionRequest actionRequest, ActionResponse actionResponse, Model model) { log.info("Inside company delete method>>>> "); try { SalesEntry salesEntry = SalesEntryLocalServiceUtil.fetchSalesEntry(salesEntryId); salesEntry.setStatus(3); SalesEntryLocalServiceUtil.updateSalesEntry(salesEntry); } catch (SystemException e) { log.error(SYSTEM_EXCEPTION, e); } } @ActionMapping(params = "action=activateCompanyAction") public void activateCompanyAction(@RequestParam long salesEntryId, @ModelAttribute(MANAGEUSERSBEAN) ManageUsersBean manageUsersBean, ActionRequest actionRequest, ActionResponse actionResponse, Model model) { log.info("Inside company activate method>>>> "); ThemeDisplay themeDisplay = (ThemeDisplay) actionRequest.getAttribute(WebKeys.THEME_DISPLAY); try { SalesEntry salesEntry = SalesEntryLocalServiceUtil.fetchSalesEntry(salesEntryId); salesEntry.setStatus(2); SalesEntryLocalServiceUtil.updateSalesEntry(salesEntry); List<String> licensedCustomers = null; List<String> licensedCustomersUserIds = new ArrayList<String>(); if (Validator.isNotNull(salesEntry) && Validator.isNotNull(salesEntry.getSalesEntryId()) && salesEntry.getSalesEntryId() > 0) { licensedCustomers = userProfileService.getLicensedUsersEmailAddress(salesEntryId); } if (Validator.isNotNull(licensedCustomers) && licensedCustomers.size() > 0) { for (String emailAddress : licensedCustomers) { User user = UserLocalServiceUtil.fetchUserByEmailAddress(themeDisplay.getCompanyId(), emailAddress); if (Validator.isNotNull(user)) { licensedCustomersUserIds.add(String.valueOf(user.getUserId())); } } } log.info("licensedCustomersUserIds size" + licensedCustomersUserIds.size()); if (Validator.isNotNull(licensedCustomersUserIds) && licensedCustomersUserIds.size() > 0) { for (String userID : licensedCustomersUserIds) { log.info(THE_LIFERAY_USER_ID_IS + userID); manageUsersDeligate.activateUser(userID); } } } catch (Exception e) { log.error(SYSTEM_EXCEPTION, e); } } @ActionMapping(params = "action=deleteTranslatorCompanyAction") public void deleteTranslatorCompanyAction(@RequestParam long translatorAgencyId, @ModelAttribute(MANAGEUSERSBEAN) ManageUsersBean manageUsersBean, ActionRequest actionRequest, ActionResponse actionResponse, Model model) { log.info("Inside Translator company delete method>>>> "); try { manageUsersDeligate.deleteTranslatorCompany(translatorAgencyId); } catch (Exception e) { log.error(SYSTEM_EXCEPTION, e); } } @ActionMapping(params = "action=suspendTranslatorCompanyAction") public void suspendTranslatorCompanyAction(@RequestParam long translatorAgencyId, @ModelAttribute(MANAGEUSERSBEAN) ManageUsersBean manageUsersBean, ActionRequest actionRequest, ActionResponse actionResponse, Model model) { log.info("Inside Translator company suspend method>>>> "); ThemeDisplay themeDisplay = (ThemeDisplay) actionRequest.getAttribute(WebKeys.THEME_DISPLAY); try { TranslatorAgency translatorAgency = new TranslatorAgency(); translatorAgency.setTranslatorAgencyId(translatorAgencyId); translatorAgency.setCompanyStatus(1); manageUsersDeligate.suspendTranslatorCompany(translatorAgency); List<String> translatorUsers = null; List<String> translatorUserIds = new ArrayList<String>(); if (Validator.isNotNull(translatorAgencyId) && translatorAgencyId > 0) { translatorUsers = userProfileService.getTranslatorUsersByTranslatorId(translatorAgencyId); } if (Validator.isNotNull(translatorUsers) && translatorUsers.size() > 0) { for (String emailAddress : translatorUsers) { log.info("emailAddress name" + emailAddress); User user = UserLocalServiceUtil.fetchUserByEmailAddress(themeDisplay.getCompanyId(), emailAddress); if (Validator.isNotNull(user)) { translatorUserIds.add(String.valueOf(user.getUserId())); } } } log.info("translatorUserIds size" + translatorUserIds.size()); if (Validator.isNotNull(translatorUserIds) && translatorUserIds.size() > 0) { for (String userID : translatorUserIds) { log.info(THE_LIFERAY_USER_ID_IS + userID); manageUsersDeligate.suspendUser(userID); } } } catch (Exception e) { log.error(SYSTEM_EXCEPTION, e); } } @ActionMapping(params = "action=activateTranslatorCompanyAction") public void activateTranslatorCompanyAction(@RequestParam long translatorAgencyId, @ModelAttribute(MANAGEUSERSBEAN) ManageUsersBean manageUsersBean, ActionRequest actionRequest, ActionResponse actionResponse, Model model) { log.info("Inside Translator company activate method>>>> "); ThemeDisplay themeDisplay = (ThemeDisplay) actionRequest.getAttribute(WebKeys.THEME_DISPLAY); try { TranslatorAgency translatorAgency = new TranslatorAgency(); translatorAgency.setTranslatorAgencyId(translatorAgencyId); translatorAgency.setCompanyStatus(2); manageUsersDeligate.activateTranslatorCompany(translatorAgency); List<String> translatorUsers = null; List<String> translatorUserIds = new ArrayList<String>(); if (Validator.isNotNull(translatorAgencyId) && translatorAgencyId > 0) { translatorUsers = userProfileService.getTranslatorUsersByTranslatorId(translatorAgencyId); } if (Validator.isNotNull(translatorUsers) && translatorUsers.size() > 0) { for (String emailAddress : translatorUsers) { User user = UserLocalServiceUtil.fetchUserByEmailAddress(themeDisplay.getCompanyId(), emailAddress); if (Validator.isNotNull(user)) { translatorUserIds.add(String.valueOf(user.getUserId())); } } } log.info("translatorUserIds size" + translatorUserIds.size()); if (Validator.isNotNull(translatorUserIds) && translatorUserIds.size() > 0) { for (String userID : translatorUserIds) { log.info(THE_LIFERAY_USER_ID_IS + userID); manageUsersDeligate.activateUser(userID); } } } catch (Exception e) { log.error(SYSTEM_EXCEPTION, e); } } @ActionMapping(params = "action=DELETE") public void deleteUserAction(@RequestParam String userID, @ModelAttribute(MANAGEUSERSBEAN) ManageUsersBean manageUsersBean, ActionRequest actionRequest, ActionResponse actionResponse, Model model) { log.info("Inside delete method>>>> "); ThemeDisplay themeDisplay = (ThemeDisplay) actionRequest.getAttribute(WebKeys.THEME_DISPLAY); User user = null; try { if (StringUtils.isNotBlank(userID)) { String emailAddress = userID.toLowerCase().trim(); user = UserLocalServiceUtil.fetchUserByEmailAddress(themeDisplay.getCompanyId(), emailAddress); if (Validator.isNotNull(user)) { manageUsersDeligate.deleteUser(String.valueOf(user.getUserId()), themeDisplay.getUser()); } else { manageUsersDeligate.suspendInStoxxDB(emailAddress); } } if (actionRequest.getParameter(PAGE_NAME) != null && actionRequest.getParameter(PAGE_NAME).equalsIgnoreCase(STAFF_USERS)) { actionResponse.setRenderParameter(REDIRECTED_PAGE, STAFF); } else if (actionRequest.getParameter(PAGE_NAME) != null && actionRequest.getParameter(PAGE_NAME).equalsIgnoreCase(GENERAL_USERS)) { actionResponse.setRenderParameter(REDIRECTED_PAGE, GENERAL_USER); } else { redirectTranslatorCompanyUser(actionRequest, actionResponse); } } catch (Exception e) { log.error("Exception", e); } } @ActionMapping(params = "action=UNLOCK") public void unlockUserAccount(@RequestParam String userID, @ModelAttribute(MANAGEUSERSBEAN) ManageUsersBean manageUsersBean, ActionRequest actionRequest, ActionResponse actionResponse, Model model) { log.info("Inside unlocking method>>>> "); try { manageUsersDeligate.unlockUser(userID); } catch (STOXXException e) { log.error("Unable to unlock account due to:" + e.getExpCode() + ":" + e.getExpMsg() + e); SessionErrors.add(actionRequest, "failed"); } if (actionRequest.getParameter(PAGE_NAME) != null && actionRequest.getParameter(PAGE_NAME).equalsIgnoreCase(STAFF_USERS)) { actionResponse.setRenderParameter(REDIRECTED_PAGE, STAFF); } else if (actionRequest.getParameter(PAGE_NAME) != null && actionRequest.getParameter(PAGE_NAME).equalsIgnoreCase(GENERAL_USERS)) { actionResponse.setRenderParameter(REDIRECTED_PAGE, GENERAL_USER); } else { redirectTranslatorCompanyUser(actionRequest, actionResponse); } } @ActionMapping(params = "action=ACTIVE") public void activateUserAction(@RequestParam String userID, @ModelAttribute(MANAGEUSERSBEAN) ManageUsersBean manageUsersBean, ActionRequest actionRequest, ActionResponse actionResponse, Model model) { log.info("Inside active method>>>> "); try { manageUsersDeligate.activateUser(userID); } catch (STOXXException e) { log.error(e.getMessage(), e); } if (actionRequest.getParameter(PAGE_NAME) != null && actionRequest.getParameter(PAGE_NAME).equalsIgnoreCase(STAFF_USERS)) { actionResponse.setRenderParameter(REDIRECTED_PAGE, STAFF); } else if (actionRequest.getParameter(PAGE_NAME) != null && actionRequest.getParameter(PAGE_NAME).equalsIgnoreCase(GENERAL_USERS)) { actionResponse.setRenderParameter(REDIRECTED_PAGE, GENERAL_USER); } else { redirectTranslatorCompanyUser(actionRequest, actionResponse); } } @ActionMapping(params = "action=SUSPEND") public void suspendUserAction(@RequestParam String userID, @ModelAttribute(MANAGEUSERSBEAN) ManageUsersBean manageUsersBean, ActionRequest actionRequest, ActionResponse actionResponse, Model model) { ThemeDisplay themeDisplay = (ThemeDisplay) actionRequest.getAttribute(WebKeys.THEME_DISPLAY); try { manageUsersDeligate.suspendUser(userID); } catch (STOXXException e) { log.error(e.getMessage(), e); } List<String> roleNameList = new ArrayList<String>(); roleNameList.add(PropsUtil.get("stoxx.user.role.gateway.role")); try { User suspendeduser = UserLocalServiceUtil.fetchUser(Long.valueOf(userID)); Set<User> userIds = SendNotificationUtil.getuserByRoleName(themeDisplay.getCompanyId(), themeDisplay.getUserId(), roleNameList); if (Validator.isNotNull(suspendeduser)) { String message = LanguageUtil.get(themeDisplay.getLocale(), "notification_for_suspend_user1") + " " + suspendeduser.getFullName() + " " + LanguageUtil.get(themeDisplay.getLocale(), "notification_for_suspend_user2"); sendnotification(themeDisplay, userIds, message); if (actionRequest.getParameter(PAGE_NAME) != null && actionRequest.getParameter(PAGE_NAME).equalsIgnoreCase(STAFF_USERS)) { actionResponse.setRenderParameter(REDIRECTED_PAGE, STAFF); } else if (actionRequest.getParameter(PAGE_NAME) != null && actionRequest.getParameter(PAGE_NAME).equalsIgnoreCase(GENERAL_USERS)) { actionResponse.setRenderParameter(REDIRECTED_PAGE, GENERAL_USER); } else { redirectTranslatorCompanyUser(actionRequest, actionResponse); } } } catch (SystemException e) { log.error(e.getMessage(), e); } catch (IOException e) { log.error(e.getMessage(), e); } catch (PortletException e) { log.error(e.getMessage(), e); } catch (PortalException e) { log.error(e.getMessage(), e); } } /** * @param actionRequest * @param actionResponse */ private void redirectTranslatorCompanyUser(ActionRequest actionRequest, ActionResponse actionResponse) { if (actionRequest.getParameter(PAGE_NAME) != null && actionRequest.getParameter(PAGE_NAME).equalsIgnoreCase(TRANS_USERS)) { actionResponse.setRenderParameter(REDIRECTED_PAGE, TRANSLATOR_USER); } else if (actionRequest.getParameter(PAGE_NAME) != null && actionRequest.getParameter(PAGE_NAME).equalsIgnoreCase("customerUsers")) { actionResponse.setRenderParameter(REDIRECTED_PAGE, COMPANY_USER); } } /** * @param themeDisplay * @param userIds * @param message * @throws IOException * @throws PortletException */ private void sendnotification(ThemeDisplay themeDisplay, Set<User> userIds, String message) throws IOException, PortletException { if (Validator.isNotNull(userIds) && userIds.size() > 0) { List<User> listUser = new ArrayList<User>(userIds); SendNotificationUtil.sendNotification(themeDisplay.getUserId(), listUser, message, ""); } else { log.info("No user Exists with this role"); } } @ActionMapping(params = "action=COMPANY") public void companyAction(@RequestParam String companyID, @ModelAttribute(MANAGEUSERSBEAN) ManageUsersBean manageUsersBean, ActionRequest actionRequest, ActionResponse actionResponse, Model model) { log.info("Inside companyAction method>>>> " + companyID); companyName = companyID; actionResponse.setRenderParameter(REDIRECTED_PAGE, COMPANY_USER); } @ActionMapping(params = "action=TRANSLATOR") public void translatorAction(@RequestParam String companyID, @ModelAttribute(MANAGEUSERSBEAN) ManageUsersBean manageUsersBean, ActionRequest actionRequest, ActionResponse actionResponse, Model model) { log.info("Inside companyAction method>>>> " + companyID); transCompanyName = companyID; actionResponse.setRenderParameter(REDIRECTED_PAGE, TRANSLATOR_USER); } @RenderMapping(params = "redirectedPage=companyUser") public String displayCustomerUser(@ModelAttribute(USER_MODEL) UserModel userModel, RenderRequest request, RenderResponse response, Model model) { ThemeDisplay themeDisplay = (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY); UserListModel userListModel = new UserListModel(); log.info("Inside customer display>>> " + companyName); String searchCategory = request.getParameter(SEARCH_CATEGORY); String searchTerm = request.getParameter(SEARCH_TERM); try { userListModel.setUserList(manageUsersDeligate.getAllCustomer(themeDisplay.getLocale(), themeDisplay.getCompanyId(), companyName, searchCategory, searchTerm)); userListModel .setSearchCriterionList(ManageUserUtil.loadSearchListForCustomer(themeDisplay.getLocale())); } catch (STOXXException e) { log.error(e.getMessage(), e); } request.setAttribute(SEARCH_CATEGORY, searchCategory); request.setAttribute(SEARCH_TERM, searchTerm); model.addAttribute("customerCompanyUserModel", userListModel); return SHOW_CUSTOMER_USER; } @RenderMapping(params = "redirectedPage=translatorUser") public String displayTranslatorUser(@ModelAttribute(USER_MODEL) UserModel userModel, RenderRequest request, RenderResponse response, Model model) { ThemeDisplay themeDisplay = (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY); UserListModel userListModel = new UserListModel(); log.info("Inside translator display>>> " + companyName); try { userListModel.setUserList( manageUsersDeligate.getAllTranslator(themeDisplay.getCompanyId(), transCompanyName)); } catch (STOXXException e) { log.error(e.getMessage(), e); } model.addAttribute("transCompanyUserModel", userListModel); return SHOW_TRANSLATOR_USER; } private void clearCacheFromServer() { log.info("Clearing cache after Role Update"); // Clearing cache from DB. try { CacheRegistryUtil.clear(); } catch (Exception e) { log.error(e.getMessage(), e); } // Clearing cache from clustered and single VM. try { WebCachePoolUtil.clear(); } catch (Exception e) { log.error(e.getMessage(), e); } try { MultiVMPoolUtil.clear(); } catch (Exception e) { log.error(e.getMessage(), e); } } private static Log log = LogFactoryUtil.getLog(ManageUsersController.class); }