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 static java.text.SimpleDateFormat createdDateFormatter
           
static java.lang.String CREATION_FORMAT
           
private  java.lang.String email
           
private  boolean isAdmin
           
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  java.lang.String password
           
private static java.util.HashMap<java.lang.String,User> pendingRegistrations
           
static java.lang.String PROVIDE_CONFCODE
           
static java.lang.String TEMPLATE_CONFCODE
           
static java.lang.String TEMPLATE_CONFCODE_REPLACEMENT
           
private  java.lang.Thread thread
           
private static java.lang.String typeAdmin
           
private static java.lang.String typeUser
           
private static java.lang.String ulSep
           
private static java.util.HashMap<java.lang.String,User> userMap
           
private static java.lang.String usersFile
           
static java.lang.String WRONG_CONFCODE
           
 
Constructor Summary
User(java.lang.String name)
           
User(java.lang.String name, java.lang.String password, java.lang.String email, boolean isAdmin, java.lang.String created, java.lang.String confCode)
           
 
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 int getDeadCount()
           
 java.lang.String getEmail()
           
static int getEnrolledCount()
           
private  java.lang.String getLastConfirmationCode()
           
static int getLoggedInCount()
           
static java.util.Iterator<User> getLoggedInUsersIterator()
           
 java.lang.String getName()
           
static int getPlayingCount()
           
 java.lang.Thread getThread()
           
 boolean isAdmin()
           
private static java.lang.String makeConfirmationCode()
           
private static java.lang.String makeCreatedDate(long when)
           
 java.lang.String makeLine()
           
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 setThread(java.lang.Thread cst)
           
static void storeUser(User u)
           
static void storeUsersToFile()
           
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

lastSentConfirmationCode

private java.lang.String lastSentConfirmationCode

pendingRegistrations

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

thread

private java.lang.Thread thread

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

CREATION_FORMAT

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

createdDateFormatter

private static java.text.SimpleDateFormat createdDateFormatter
Constructor Detail

User

public User(java.lang.String name)

User

public User(java.lang.String name,
            java.lang.String password,
            java.lang.String email,
            boolean isAdmin,
            java.lang.String created,
            java.lang.String confCode)
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)

getThread

public java.lang.Thread getThread()

setProperties

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

setThread

public void setThread(java.lang.Thread cst)

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:
String - username
String - password

storeUser

public static void storeUser(User u)

findUserByName

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

getLoggedInUsersIterator

public static java.util.Iterator<User> getLoggedInUsersIterator()

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)

makeCreatedDate

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

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()