EN · DE · RU · FR · ES

#3159: UsersProvider.java

projectforge-wicket/src/main/java/org/projectforge/web/user/UsersProvider.java Clase Java, projectforge-wicket/src/main/java/org/projectforge/web/user/UsersProvider.java 182 líneas · 131 código · 30 comentarios · 21 en blanco
Propósito: Archivo fuente: projectforge/web/user/UsersProvider.java. UsersProvider.java es parte de la aplicación de gestión de proyectos de código abierto ProjectForge.

Fuente (primeras 100 líneas)

/////////////////////////////////////////////////////////////////////////////
//
// Project ProjectForge Community Edition
//         www.projectforge.org
//
// Copyright (C) 2001-2026 Micromata GmbH, Germany (www.micromata.com)
//
// ProjectForge tiene doble licencia.
//
// Esta edición comunitaria es software libre; puedes redistribuirla y/o
// modificarla bajo los términos de la Licencia Pública General GNU publicada
// por la Free Software Foundation; versión 3 de la Licencia.
//
// Esta edición comunitaria se distribuye con la esperanza de que sea útil,
// pero SIN NINGUNA GARANTÍA; sin siquiera la garantía implícita de
// COMERCIABILIDAD o IDONEIDAD PARA UN PROPÓSITO PARTICULAR. Consulte la Licencia General
// Pública de GNU para más detalles.
//
// Deberías haber recibido una copia de la Licencia Pública General GNU junto
// con este programa; si no, consulta http://www.gnu.org/licenses/.
//
/////////////////////////////////////////////////////////////////////////////

package org.projectforge.web.user;

import org.apache.commons.lang3.StringUtils;
import org.projectforge.business.user.UserDao;
import org.projectforge.business.user.UserGroupCache;
import org.projectforge.business.user.UsersComparator;
import org.projectforge.common.StringHelper;
import org.projectforge.framework.persistence.user.api.ThreadLocalUserContext;
import org.projectforge.framework.persistence.user.entities.PFUserDO;
import org.projectforge.framework.utils.NumberHelper;
import org.wicketstuff.select2.ChoiceProvider;
import org.wicketstuff.select2.Response;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.TreeSet;

public class UsersProvider extends ChoiceProvider<PFUserDO>
{
  private static final long serialVersionUID = 6228672635966093252L;

  private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(UsersProvider.class);

  private transient UserGroupCache userGroupCache;

  private transient UserDao userDao;

  private int pageSize = 20;

  private final UsersComparator usersComparator = new UsersComparator();

  private Collection<PFUserDO> sortedUsers;

  public UsersProvider(UserDao userDao)
  {
    this.userDao = userDao;
  }

  public Collection<PFUserDO> getSortedUsers()
  {
    if (sortedUsers == null) {
      sortedUsers = new TreeSet<PFUserDO>(usersComparator);
      final Collection<PFUserDO> allusers = UserGroupCache.getInstance().getAllUsers();
      final PFUserDO loggedInUser = ThreadLocalUserContext.getLoggedInUser();
      for (final PFUserDO user : allusers) {
        if (user.getDeleted() == false && user.getDeactivated() == false
            && userDao.hasUserSelectAccess(loggedInUser, user, false) == true) {
          sortedUsers.add(user);
        }
      }
    }
    return sortedUsers;
  }

  /**
   * @param userIds
   * @return
   */
  public Collection<PFUserDO> getSortedUsers(final String userIds)
  {
    if (StringUtils.isEmpty(userIds) == true) {
      return null;
    }
    sortedUsers = new TreeSet<PFUserDO>(usersComparator);
    final long[] ids = StringHelper.splitToLongs(userIds, ",");
    for (final long id : ids) {
      final PFUserDO user = UserGroupCache.getInstance().getUser(id);
      if (user != null) {
        sortedUsers.add(user);
      } else {
        log.warn("Grupo con id '" + id + "' no encontrado en UserGroupCache. La cadena de groupIds era: " + userIds);
      }
    }
    return sortedUsers;
  }

Historial Git

868d6abb7 2025 -> 2026
63081666f Encabezados de archivos fuente: 2024 -> 2025.
a72903e36 *.java, *.kt: StringBuffer -> StringBuilder.
67805f2fc ThreadLocalUserContext.user -> ThreadLocalUserContext.loggedInUser (renombrado para evitar malentendidos en el código).
4c04cfd65 CAMBIO IMPORTANTE: Migración de ids enteros a ids Long (incluyendo claves foráneas, etc.)

868d6abb7

2025 -> 2026
868d6abb75cd191a892911ac8e45058932cf9074
diff --git a/projectforge-wicket/src/main/java/org/projectforge/web/user/UsersProvider.java b/projectforge-wicket/src/main/java/org/projectforge/web/user/UsersProvider.java
index 1807463d8..b739a353f 100644
--- a/projectforge-wicket/src/main/java/org/projectforge/web/user/UsersProvider.java
+++ b/projectforge-wicket/src/main/java/org/projectforge/web/user/UsersProvider.java
@@ -3,7 +3,7 @@
 // Project ProjectForge Community Edition
 //         www.projectforge.org
 //
-// Copyright (C) 2001-2025 Micromata GmbH, Germany (www.micromata.com)
+// Copyright (C) 2001-2026 Micromata GmbH, Germany (www.micromata.com)
 //
 // ProjectForge is dual-licensed.
 //

63081666f

Encabezados de archivos fuente: 2024 -> 2025.
63081666f620fb87315f01b817e560e0b2f6a33a
diff --git a/projectforge-wicket/src/main/java/org/projectforge/web/user/UsersProvider.java b/projectforge-wicket/src/main/java/org/projectforge/web/user/UsersProvider.java
index b003a6c55..1807463d8 100644
--- a/projectforge-wicket/src/main/java/org/projectforge/web/user/UsersProvider.java
+++ b/projectforge-wicket/src/main/java/org/projectforge/web/user/UsersProvider.java
@@ -3,7 +3,7 @@
 // Project ProjectForge Community Edition
 //         www.projectforge.org
 //
-// Copyright (C) 2001-2024 Micromata GmbH, Germany (www.micromata.com)
+// Copyright (C) 2001-2025 Micromata GmbH, Germany (www.micromata.com)
 //
 // ProjectForge is dual-licensed.
 //

a72903e36

*.java, *.kt: StringBuffer -> StringBuilder.
a72903e36a6ee147b42123382a745d6438dd924c
diff --git a/projectforge-wicket/src/main/java/org/projectforge/web/user/UsersProvider.java b/projectforge-wicket/src/main/java/org/projectforge/web/user/UsersProvider.java
index 4358426f9..b003a6c55 100644
--- a/projectforge-wicket/src/main/java/org/projectforge/web/user/UsersProvider.java
+++ b/projectforge-wicket/src/main/java/org/projectforge/web/user/UsersProvider.java
@@ -100,7 +100,7 @@ public class UsersProvider extends ChoiceProvider<PFUserDO>
 
   public String getUserIds(final Collection<PFUserDO> users)
   {
-    final StringBuffer buf = new StringBuffer();
+    final StringBuilder buf = new StringBuilder();
     boolean first = true;
     for (final PFUserDO user : users) {
       if (user.getId() != null) {

67805f2fc

ThreadLocalUserContext.user -> ThreadLocalUserContext.loggedInUser (renombrado para evitar malentendidos en el código).
67805f2fc1f3e6a6393accb4a757a8f4049b001c
diff --git a/projectforge-wicket/src/main/java/org/projectforge/web/user/UsersProvider.java b/projectforge-wicket/src/main/java/org/projectforge/web/user/UsersProvider.java
index 22cc8079c..4358426f9 100644
--- a/projectforge-wicket/src/main/java/org/projectforge/web/user/UsersProvider.java
+++ b/projectforge-wicket/src/main/java/org/projectforge/web/user/UsersProvider.java
@@ -65,7 +65,7 @@ public class UsersProvider extends ChoiceProvider<PFUserDO>
     if (sortedUsers == null) {
       sortedUsers = new TreeSet<PFUserDO>(usersComparator);
       final Collection<PFUserDO> allusers = UserGroupCache.getInstance().getAllUsers();
-      final PFUserDO loggedInUser = ThreadLocalUserContext.getUser();
+      final PFUserDO loggedInUser = ThreadLocalUserContext.getLoggedInUser();
       for (final PFUserDO user : allusers) {
         if (user.getDeleted() == false && user.getDeactivated() == false
             && userDao.hasUserSelectAccess(loggedInUser, user, false) == true) {

4c04cfd65

CAMBIO IMPORTANTE: Migración de ids enteros a ids Long (incluyendo claves foráneas, etc.)
4c04cfd652210afe373d55f53a5300c85997b109
diff --git a/projectforge-wicket/src/main/java/org/projectforge/web/user/UsersProvider.java b/projectforge-wicket/src/main/java/org/projectforge/web/user/UsersProvider.java
index 9b47e3d79..22cc8079c 100644
--- a/projectforge-wicket/src/main/java/org/projectforge/web/user/UsersProvider.java
+++ b/projectforge-wicket/src/main/java/org/projectforge/web/user/UsersProvider.java
@@ -86,8 +86,8 @@ public class UsersProvider extends ChoiceProvider<PFUserDO>
       return null;
     }
     sortedUsers = new TreeSet<PFUserDO>(usersComparator);
-    final int[] ids = StringHelper.splitToInts(userIds, ",", false);
-    for (final int id : ids) {
+    final long[] ids = StringHelper.splitToLongs(userIds, ",");
+    for (final long id : ids) {
       final PFUserDO user = UserGroupCache.getInstance().getUser(id);
       if (user != null) {
         sortedUsers.add(user);
@@ -168,7 +168,7 @@ public class UsersProvider extends ChoiceProvider<PFUserDO>
       return list;
     }
     for (final String str : ids) {
-      final Integer userId = NumberHelper.parseInteger(str);
+      final Long userId = NumberHelper.parseLong(str);
       if (userId == null) {
         continue;
       }