EN · DE · RU · FR · ES

#3159: UsersProvider.java

projectforge-wicket/src/main/java/org/projectforge/web/user/UsersProvider.java Java-Klasse, projectforge-wicket/src/main/java/org/projectforge/web/user/UsersProvider.java 182 Zeilen · 131 Code · 30 Kommentare · 21 Leer
Zweck: Quelldatei: projectforge/web/user/UsersProvider.java. UsersProvider.java ist Teil der Open-Source-Projektmanagement-Anwendung ProjectForge.

Quellcode (erste 100 Zeilen)

/////////////////////////////////////////////////////////////////////////////
//
// Project ProjectForge Community Edition
//         www.projectforge.org
//
// Copyright (C) 2001-2026 Micromata GmbH, Germany (www.micromata.com)
//
// ProjectForge ist dual-lizenziert.
//
// Diese Community-Edition ist freie Software; Sie können sie weiterverbreiten und/oder
// modifizieren unter den Bedingungen der GNU General Public License, wie veröffentlicht
// von der Free Software Foundation; Version 3 der Lizenz.
//
// Diese Community-Edition wird in der Hoffnung verteilt, dass sie nützlich sein wird,
// aber OHNE JEGLICHE GEWÄHRLEISTUNG; ohne die stillschweigende Gewährleistung der
// MARKTGÄNGIGKEIT oder EIGNUNG FÜR EINEN BESTIMMTEN ZWECK. Siehe die GNU General
// Public License für weitere Details.
//
// Sie sollten eine Kopie der GNU General Public License zusammen mit
// diesem Programm erhalten haben; falls nicht, siehe 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("Gruppe mit ID '" + id + "' nicht im UserGroupCache gefunden. groupIds-String war: " + userIds);
      }
    }
    return sortedUsers;
  }

Git-Verlauf

868d6abb7 2025 -> 2026
63081666f Quelldatei-Header: 2024 -> 2025.
a72903e36 *.java, *.kt: StringBuffer -> StringBuilder.
67805f2fc ThreadLocalUserContext.user -> ThreadLocalUserContext.loggedInUser (umbenannt, um Missverständnisse im Code zu vermeiden).
4c04cfd65 MAJOR-CHANGE! Migration von Integer-IDs zu Long-IDs (einschließlich Fremdschlüsseln usw.)

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

Quelldatei-Header: 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 (umbenannt, um Missverständnisse im Code zu vermeiden).
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

MAJOR-CHANGE! Migration von Integer-IDs zu Long-IDs (einschließlich Fremdschlüsseln usw.)
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;
       }