示例#1
0
  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();
  }