UserSessionView.java 1.63 KB
package fi.codecrew.moya.web.cdiview.user;

import javax.ejb.EJB;
import javax.enterprise.context.ConversationScoped;
import javax.faces.model.ListDataModel;
import javax.inject.Named;
import javax.servlet.http.HttpSession;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import fi.codecrew.moya.beans.SessionMgmtBeanLocal;
import fi.codecrew.moya.enums.apps.UserPermission;
import fi.codecrew.moya.web.cdiview.GenericCDIView;
import fi.codecrew.moya.web.helper.HttpSessionWrapper;

@Named
@ConversationScoped
public class UserSessionView extends GenericCDIView {

	private static final long serialVersionUID = -5305969666679378884L;
	@EJB
	private transient SessionMgmtBeanLocal sessionMgmt;
	private transient ListDataModel<HttpSessionWrapper> sessions;

	private transient HttpSession session;

	@SuppressWarnings("unused")
	private static final Logger logger = LoggerFactory.getLogger(UserSessionView.class);

	public void initView()
	{
		if (super.requirePermissions(UserPermission.MANAGE_HTTP_SESSION) && sessions == null)
		{
			sessions = new ListDataModel<>(HttpSessionWrapper.wrap(sessionMgmt.getSessions()));
			super.beginConversation();
		}
	}

	public ListDataModel<HttpSessionWrapper> getSessions() {
		return sessions;
	}

	public void setSessions(ListDataModel<HttpSessionWrapper> sessions) {
		this.sessions = sessions;
	}

	public HttpSession getSession() {
		return session;
	}

	public void setSession(HttpSession session) {
		this.session = session;
	}

	public String invalidateSession()
	{
		sessions.getRowData().invalidate();
		sessions = null;
		super.addFaceMessage("httpsession.invalidateSuccessfull");
		return null;
	}

}