net.sf.colossus.webcommon
Class User

java.lang.Object
  extended by net.sf.colossus.webcommon.User

public class User
extends java.lang.Object

One user at the WebServer side. Also used on client side, because interface requires so, but basically only to store the username, everything else is unused. The class statically contains a list of all user registered at the Public Game Server; this list is read from a file (later a DB??) into a HashMap to quickly look up all users.

Author:
Clemens Katzer

Field Summary
private  java.lang.String created
           
private  java.lang.String email
           
private  boolean isAdmin
           
private  java.lang.String lastLogin
           
private  java.lang.String lastLogout
           
private  java.lang.String lastSentConfirmationCode
           
private static java.util.HashMap<java.lang.String,User> loggedInUserMap
           
private static java.util.logging.Logger LOGGER
           
private static int MAX_RANDOM
           
private static int maxUsers
           
private  java.lang.String name
           
private  long onlineSecs
           
private  java.lang.String password
           
private static java.util.HashMap<java.lang.String,User> pendingRegistrations
           
static java.lang.String PROVIDE_CONFCODE
           
private  long sessionStarted
           
static java.lang.String TEMPLATE_CONFCODE
           
static java.lang.String TEMPLATE_CONFCODE_REPLACEMENT
           
private static java.lang.String typeAdmin
           
private static java.lang.String typeUser
           
private static java.lang.String ulSep
           
static java.lang.String USERLINE_DATE_FORMAT
           
private static java.text.SimpleDateFormat userlineDateFormatter
           
private static java.util.HashMap<java.lang.String,User> userMap
           
private static java.lang.String usersFile
           
private  IWebClient webserverClient
           
static java.lang.String WRONG_CONFCODE
           
 
Constructor Summary
  User(java.lang.String name)
           
private User(java.lang.String name, java.lang.String password, java.lang.String email, boolean isAdmin, java.lang.String created, java.lang.String lastLogin, java.lang.String lastLogout, long onlineSecs)
           
 
Method Summary
private static long atLeast10(long original)
           
static java.lang.String changeProperties(java.lang.String username, java.lang.String oldPW, java.lang.String newPW, java.lang.String email, java.lang.Boolean isAdmin)
           
static void cleanup()
           
private static java.lang.String confirmIfCorrectCode(java.lang.String username, java.lang.String tryConfirmationCode)
           
static java.lang.String confirmRegistration(java.lang.String username, java.lang.String confirmationCode)
           
static User findUserByName(java.lang.String name)
           
static java.util.Collection<User> getAllUsers()
           
static int getDeadCount()
           
 java.lang.String getEmail()
           
static int getEnrolledCount()
           
private  java.lang.String getLastConfirmationCode()
           
static int getLoggedInCount()
           
static java.lang.String getLoggedInNamesAsString(java.lang.String useSeparator)
           
static java.util.Collection<User> getLoggedInUsers()
           
 java.lang.String getName()
           
static int getPlayingCount()
           
static int getUserCount()
           
 IWebClient getWebserverClient()
           
 boolean isAdmin()
           
static boolean isUserOnline(User u)
           
private static java.lang.String makeConfirmationCode()
           
 java.lang.String makeLine()
           
private static java.lang.String makeUserlineDate(long when)
           
static void parseUserLine(java.lang.String line)
           
static void readUsersFromFile(java.lang.String filename, int maxUsersVal)
           
static java.lang.String registerUser(java.lang.String username, java.lang.String password, java.lang.String email, IColossusMail mailObject)
           
static java.lang.String sendConfirmationMail(java.lang.String username, java.lang.String email, java.lang.String confCode, IColossusMail mailObject)
           
 void setIsAdmin(boolean val)
           
 void setProperties(java.lang.String pw, java.lang.String email, java.lang.Boolean isAdminObj)
           
 void setWebClient(IWebClient wsc)
           
static void storeUser(User u)
           
static void storeUsersToFile()
           
 void updateLastLogin()
           
 void updateLastLogout()
           
static java.lang.String verifyLogin(java.lang.String username, java.lang.String password)
          Given a username and password, verifies that the user is allowed to login with that password.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

LOGGER

private static final java.util.logging.Logger LOGGER

userMap

private static java.util.HashMap<java.lang.String,User> userMap

loggedInUserMap

private static java.util.HashMap<java.lang.String,User> loggedInUserMap

ulSep

private static final java.lang.String ulSep
See Also:
Constant Field Values

usersFile

private static java.lang.String usersFile

typeUser

private static final java.lang.String typeUser
See Also:
Constant Field Values

typeAdmin

private static final java.lang.String typeAdmin
See Also:
Constant Field Values

maxUsers

private static int maxUsers

name

private final java.lang.String name

password

private java.lang.String password

email

private java.lang.String email

isAdmin

private boolean isAdmin

created

private java.lang.String created

lastLogin

private java.lang.String lastLogin

lastLogout

private java.lang.String lastLogout

onlineSecs

private long onlineSecs

sessionStarted

private long sessionStarted

lastSentConfirmationCode

private java.lang.String lastSentConfirmationCode

pendingRegistrations

private static final java.util.HashMap<java.lang.String,User> pendingRegistrations

webserverClient

private IWebClient webserverClient

MAX_RANDOM

private static final int MAX_RANDOM
See Also:
Constant Field Values

PROVIDE_CONFCODE

public static final java.lang.String PROVIDE_CONFCODE
See Also:
Constant Field Values

WRONG_CONFCODE

public static final java.lang.String WRONG_CONFCODE
See Also:
Constant Field Values

TEMPLATE_CONFCODE

public static final java.lang.String TEMPLATE_CONFCODE
See Also:
Constant Field Values

TEMPLATE_CONFCODE_REPLACEMENT

public static final java.lang.String TEMPLATE_CONFCODE_REPLACEMENT
See Also:
Constant Field Values

USERLINE_DATE_FORMAT

public static final java.lang.String USERLINE_DATE_FORMAT
See Also:
Constant Field Values

userlineDateFormatter

private static java.text.SimpleDateFormat userlineDateFormatter
Constructor Detail

User

public User(java.lang.String name)

User

private User(java.lang.String name,
             java.lang.String password,
             java.lang.String email,
             boolean isAdmin,
             java.lang.String created,
             java.lang.String lastLogin,
             java.lang.String lastLogout,
             long onlineSecs)
Method Detail

getName

public java.lang.String getName()

getEmail

public java.lang.String getEmail()

getLastConfirmationCode

private java.lang.String getLastConfirmationCode()

isAdmin

public boolean isAdmin()

setIsAdmin

public void setIsAdmin(boolean val)

setProperties

public void setProperties(java.lang.String pw,
                          java.lang.String email,
                          java.lang.Boolean isAdminObj)

getWebserverClient

public IWebClient getWebserverClient()

setWebClient

public void setWebClient(IWebClient wsc)

verifyLogin

public static java.lang.String verifyLogin(java.lang.String username,
                                           java.lang.String password)
Given a username and password, verifies that the user is allowed to login with that password.

Parameters:
username -
password -
Returns:
reasonLoginFailed (String), null if login ok

storeUser

public static void storeUser(User u)

getAllUsers

public static java.util.Collection<User> getAllUsers()

getUserCount

public static int getUserCount()

findUserByName

public static User findUserByName(java.lang.String name)

isUserOnline

public static boolean isUserOnline(User u)

getLoggedInUsers

public static java.util.Collection<User> getLoggedInUsers()

getLoggedInNamesAsString

public static java.lang.String getLoggedInNamesAsString(java.lang.String useSeparator)

getLoggedInCount

public static int getLoggedInCount()

getEnrolledCount

public static int getEnrolledCount()

getPlayingCount

public static int getPlayingCount()

getDeadCount

public static int getDeadCount()

registerUser

public static java.lang.String registerUser(java.lang.String username,
                                            java.lang.String password,
                                            java.lang.String email,
                                            IColossusMail mailObject)

sendConfirmationMail

public static java.lang.String sendConfirmationMail(java.lang.String username,
                                                    java.lang.String email,
                                                    java.lang.String confCode,
                                                    IColossusMail mailObject)

atLeast10

private static long atLeast10(long original)

makeConfirmationCode

private static java.lang.String makeConfirmationCode()

confirmRegistration

public static java.lang.String confirmRegistration(java.lang.String username,
                                                   java.lang.String confirmationCode)

confirmIfCorrectCode

private static java.lang.String confirmIfCorrectCode(java.lang.String username,
                                                     java.lang.String tryConfirmationCode)

changeProperties

public static java.lang.String changeProperties(java.lang.String username,
                                                java.lang.String oldPW,
                                                java.lang.String newPW,
                                                java.lang.String email,
                                                java.lang.Boolean isAdmin)

makeUserlineDate

private static java.lang.String makeUserlineDate(long when)

updateLastLogin

public void updateLastLogin()

updateLastLogout

public void updateLastLogout()

parseUserLine

public static void parseUserLine(java.lang.String line)

readUsersFromFile

public static void readUsersFromFile(java.lang.String filename,
                                     int maxUsersVal)

makeLine

public java.lang.String makeLine()

storeUsersToFile

public static void storeUsersToFile()

cleanup

public static void cleanup()