package org.openslx.imagemaster.session; import org.openslx.bwlp.thrift.iface.UserInfo; import org.openslx.imagemaster.Globals; /** * Simple representation of a user session. Contains user-related data and * information on whether the session is still valid. * */ public class Session { private static final long TIMEOUT = Globals.getSessionTimeoutUser() * 1000L; private long timeOut = 0; private final UserInfo user; public Session( final UserInfo dbuser ) { this.user = dbuser; this.timeOut = System.currentTimeMillis() + TIMEOUT; } public synchronized void refresh() { if ( timedOut() ) return; // Don't allow refreshing timed out session this.timeOut = System.currentTimeMillis() + TIMEOUT; } public synchronized boolean timedOut() { return this.timeOut == 0 || System.currentTimeMillis() > this.timeOut; } public synchronized void invalidate() { this.timeOut = 0; } public String getLogin() { return user.userId; } public String getFirstName() { return user.firstName; } public String getLastName() { return user.lastName; } public String getEMail() { return user.eMail; } public String getOrgenizationId() { return user.organizationId; } public UserInfo getUserInfo() { return user; } }