/hostadmiral/trunk/src/ak/hostadmiral/core/action/sessioncontrol/UserUpdater.java |
---|
File deleted |
/hostadmiral/trunk/src/ak/hostadmiral/core/action/userupdater/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()); |
} |
} |
} |
} |
} |
/hostadmiral/trunk/src/ak/hostadmiral/core/action/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()); |
} |
} |
} |
} |
} |