protected String getUsersCSV(ActionRequest actionRequest, ActionResponse actionResponse) throws Exception { ThemeDisplay themeDisplay = (ThemeDisplay) actionRequest.getAttribute(WebKeys.THEME_DISPLAY); PermissionChecker permissionChecker = themeDisplay.getPermissionChecker(); if (!PortalPermissionUtil.contains(permissionChecker, ActionKeys.EXPORT_USER)) { return StringPool.BLANK; } String exportProgressId = ParamUtil.getString(actionRequest, "exportProgressId"); ProgressTracker progressTracker = new ProgressTracker(actionRequest, exportProgressId); progressTracker.start(); List<User> users = getUsers(actionRequest, actionResponse, themeDisplay); int percentage = 10; int total = users.size(); progressTracker.setPercent(percentage); if (total == 0) { return StringPool.BLANK; } StringBundler sb = new StringBundler(users.size()); for (int i = 0; i < users.size(); i++) { User user = users.get(i); sb.append(getUserCSV(user)); percentage = Math.min(10 + (i * 90) / total, 99); progressTracker.setPercent(percentage); } progressTracker.finish(); return sb.toString(); }