package org.japanosample;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.Iterator;
import java.util.List;
import org.japano.util.Util;
public class SampleSession extends org.japano.Session
{
private int number=0;
private User user;
public int getNumber()
{
return this.number;
}
public void setNumber(int number)
{
this.number=number;
}
public void logout()
{
user=null;
setAttribute("user", user);
}
public synchronized boolean login(String email, String password)
{
String hash=Util.getSHADigest( password);
for (Iterator i=User.USERS.iterator(); i.hasNext(); )
{
User u=(User)i.next();
if ( u.getEMail().equals( email) &&
u.getPasswordHash().equals(hash))
{
this.user=u;
setAttribute("user", this.user);
return true;
}
}
this.user=null;
setAttribute("user", null);
return false;
}
public synchronized User getUser()
{
return this.user;
}
public static Collection sessions()
{
return new ArrayList(allSessions.values());
}
public void access()
{
super.access();
long lastUserRest=User.getLastReset();
long now=System.currentTimeMillis();
if (now-lastUserRest > User.RESET_INTERVAL)
{ User.reset();
synchronized (allSessions)
{
for (Iterator i=allSessions.values().iterator(); i.hasNext(); )
{
SampleSession s=(SampleSession)i.next();
synchronized(s)
{
if (s.user != null)
{
s.user=User.fromId(s.user.getId());
}
}
}
}
}
}
}