/**
   * Get the filtered list of database users
   *
   * @param duFilter The filter
   * @param bIsSearch True if the user used search filters, false otherwise
   * @param listUsers the initial list to filter
   * @param request HttpServletRequest
   * @param model Map
   * @param url UrlItem
   * @return the filtered list
   */
  public List<DatabaseUser> getFilteredUsersInterface(
      DatabaseUserFilter duFilter,
      boolean bIsSearch,
      List<DatabaseUser> listUsers,
      HttpServletRequest request,
      Map<String, Object> model,
      UrlItem url) {
    Plugin myLutecePlugin = PluginService.getPlugin(MyLutecePlugin.PLUGIN_NAME);
    List<DatabaseUser> filteredUsers = getListFilteredUsers(request, duFilter, listUsers);
    MyLuteceUserFieldFilter mlFieldFilter = new MyLuteceUserFieldFilter();
    mlFieldFilter.setMyLuteceUserFieldFilter(request, request.getLocale());

    List<IAttribute> listAttributes = AttributeHome.findAll(request.getLocale(), myLutecePlugin);

    for (IAttribute attribute : listAttributes) {
      List<AttributeField> listAttributeFields =
          AttributeFieldHome.selectAttributeFieldsByIdAttribute(
              attribute.getIdAttribute(), myLutecePlugin);
      attribute.setListAttributeFields(listAttributeFields);
    }

    String strSortSearchAttribute = StringUtils.EMPTY;

    if (bIsSearch) {
      duFilter.setUrlAttributes(url);

      if (duFilter.getUrlAttributes() != StringUtils.EMPTY) {
        strSortSearchAttribute = AMPERSAND + duFilter.getUrlAttributes();
      }

      mlFieldFilter.setUrlAttributes(url);

      if (mlFieldFilter.getUrlAttributes() != StringUtils.EMPTY) {
        strSortSearchAttribute += (AMPERSAND + mlFieldFilter.getUrlAttributes());
      }
    }

    model.put(MARK_SEARCH_IS_SEARCH, bIsSearch);
    model.put(MARK_SEARCH_USER_FILTER, duFilter);
    model.put(MARK_SORT_SEARCH_ATTRIBUTE, strSortSearchAttribute);
    model.put(MARK_SEARCH_MYLUTECE_USER_FIELD_FILTER, mlFieldFilter);
    model.put(MARK_ATTRIBUTES_LIST, listAttributes);

    return filteredUsers;
  }