diff options
Diffstat (limited to 'orktrack/src/net/sf/oreka/orktrack/UserManager.java')
-rw-r--r-- | orktrack/src/net/sf/oreka/orktrack/UserManager.java | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/orktrack/src/net/sf/oreka/orktrack/UserManager.java b/orktrack/src/net/sf/oreka/orktrack/UserManager.java new file mode 100644 index 0000000..4c5ce02 --- /dev/null +++ b/orktrack/src/net/sf/oreka/orktrack/UserManager.java @@ -0,0 +1,66 @@ +/* + * Oreka -- A media capture and retrieval platform + * + * Copyright (C) 2005, orecx LLC + * + * http://www.orecx.com + * + * This program is free software, distributed under the terms of + * the GNU General Public License. + * Please refer to http://www.gnu.org/copyleft/gpl.html + * + */ + +package net.sf.oreka.orktrack; + +import java.util.HashMap; +import java.util.List; + +import net.sf.oreka.persistent.User; + +import org.apache.log4j.Logger; +import org.hibernate.Session; + +public class UserManager { + + private static Logger log = null; + private static UserManager userManager = null; + + private HashMap<User, Port> userLocations = new HashMap<User, Port>(); + + private UserManager() { + log = LogManager.getInstance().getUserLogger(); + } + + public static UserManager instance() { + + if(userManager == null) { + userManager = new UserManager(); + } + return userManager; + } + + public User getByLoginString(String loginString, Session hbnSession) { + + User user = null; + List users = hbnSession.createQuery( + "from LoginString as ls join ls.user as usr where ls.loginString=:loginstring") + .setString("loginstring", loginString) + .list(); + if (users.size() > 0) { + Object[] row = (Object[])users.get(0); + if (row.length > 1) { + user = (User)row[1]; + } + } + return user; + } + + public synchronized void setUserLocation(User user, Port port) { + userLocations.put(user, port); + } + + public synchronized Port getUserLocation(User user) { + return userLocations.get(user); + } +} |