Subversion Repositories general

Compare Revisions

Ignore whitespace Rev 1064 → Rev 1065

/hostadmiral/trunk/src/ak/hostadmiral/core/action/UserUpdater.java
File deleted
/hostadmiral/trunk/src/ak/hostadmiral/core/action/userupdater/UserUpdater.java
File deleted
/hostadmiral/trunk/src/ak/hostadmiral/core/action/sessioncontrol/UserUpdater.java
0,0 → 1,104
package ak.hostadmiral.core.action;
 
import java.util.Map;
import java.util.Set;
import java.util.HashSet;
import java.util.Iterator;
 
import javax.servlet.http.HttpSessionListener;
import javax.servlet.http.HttpSessionActivationListener;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSession;
 
import org.apache.log4j.Logger;
 
import org.apache.struts.Globals;
 
import ak.hostadmiral.util.ModelException;
import ak.hostadmiral.util.ConfigInit;
import ak.hostadmiral.core.model.User;
import ak.hostadmiral.core.model.UserManager;
import ak.hostadmiral.core.model.UserModifiedListener;
import ak.hostadmiral.core.servlet.SessionKeys;
 
public final class UserUpdater
implements
ConfigInit,
UserModifiedListener,
HttpSessionListener,
HttpSessionActivationListener
{
private static final Logger logger = Logger.getLogger(UserUpdater.class);
 
protected Set sessions = new HashSet();
protected boolean registered = false;
 
public UserUpdater()
{
}
 
public void init(Map params)
{
register();
}
 
protected void register()
{
UserManager.getInstance().addModifiedListener(this);
registered = true;
 
logger.info("registered for user modifications");
}
 
public void sessionCreated(HttpSessionEvent se)
{
logger.info("session created");
sessions.add(se.getSession());
}
 
public void sessionDestroyed(HttpSessionEvent se)
{
if(logger.isInfoEnabled()) {
logger.info("session destroyed for " + se.getSession().getAttribute(SessionKeys.USER));
}
 
sessions.remove(se.getSession());
}
 
public void sessionDidActivate(HttpSessionEvent se)
{
if(logger.isInfoEnabled()) {
logger.info("session activated for " + se.getSession().getAttribute(SessionKeys.USER));
}
 
sessions.add(se.getSession());
}
 
public void sessionWillPassivate(HttpSessionEvent se)
{
if(logger.isInfoEnabled()) {
logger.info("session passivated for " + se.getSession().getAttribute(SessionKeys.USER));
}
 
sessions.remove(se.getSession());
}
 
public void userModified(User editor, User user, User oldUser)
throws ModelException
{
logger.info("user modified: " + user);
 
for(Iterator i = sessions.iterator(); i.hasNext(); ) {
HttpSession s = (HttpSession)i.next();
User u = (User)s.getAttribute(SessionKeys.USER);
 
if(u != null) {
if(u.equals(oldUser)) {
logger.info("update user");
s.setAttribute(SessionKeys.USER, user);
s.setAttribute(Globals.LOCALE_KEY, user.getLocale());
}
}
}
}
}