package managedbean.common; import javax.faces.application.FacesMessage; import javax.faces.context.FacesContext; import javax.servlet.ServletRequest; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import TO.LoggedUserTO; import common.UserType; public class SessionUtils { public static final String SESSION_VAR_USERNAME = "userName"; public static final String SESSION_VAR_USERID = "userId"; public static final String SESSION_VAR_USERTYPE = "userType"; public static final String SESSION_VAR_USER = "loggedOnUser"; public static final String SESSION_VAR_MESSAGE = "facesMessage"; public static HttpSession getSession(boolean create) { FacesContext ctx = FacesContext.getCurrentInstance(); if (ctx != null) return (HttpSession) ctx.getExternalContext().getSession(create); else return null; } public static HttpSession getSession() { return getSession(false); } public static HttpServletRequest getRequest() { return (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest(); } public static HttpSession getSession(ServletRequest request) { return ((HttpServletRequest) request).getSession(false); } public static void createOrUpdateSession(LoggedUserTO usr) { createOrUpdateSession(getSession(true), usr); } public static void createOrUpdateSession(HttpSession ses, LoggedUserTO usr) { if (ses == null) return; ses.setAttribute(SessionUtils.SESSION_VAR_USERNAME, usr.getName()); ses.setAttribute(SessionUtils.SESSION_VAR_USERID, usr.getId()); ses.setAttribute(SessionUtils.SESSION_VAR_USERTYPE, usr.getUserType()); ses.setAttribute(SessionUtils.SESSION_VAR_USER, usr); } public static void DestroySession() { HttpSession ses = getSession(); ses.invalidate(); } public static boolean isLogedIn() { return isLogedIn(getSession()); } public static boolean isLogedIn(HttpSession session) { if (session != null && session.getAttribute(SessionUtils.SESSION_VAR_USERID) != null) return true; else return false; } public static String getUserName() { HttpSession session = getSession(); if (session != null && session.getAttribute(SessionUtils.SESSION_VAR_USERNAME) != null) return session.getAttribute(SessionUtils.SESSION_VAR_USERNAME).toString(); else return ""; } public static String getUserId() { HttpSession session = getSession(); if (session != null && session.getAttribute(SessionUtils.SESSION_VAR_USERID) != null) return session.getAttribute(SessionUtils.SESSION_VAR_USERID).toString(); else return ""; } public static String getUserDisplayName() { HttpSession session = getSession(); if (session != null && session.getAttribute(SessionUtils.SESSION_VAR_USER) != null) { LoggedUserTO usr = LoggedUserTO.class.cast(session.getAttribute(SessionUtils.SESSION_VAR_USER)); return usr.getDisplayName(); } else return ""; } public static UserType getUserType() { return getUserType(getSession()); } public static UserType getUserType(HttpSession session) { if (session != null && session.getAttribute(SessionUtils.SESSION_VAR_USERTYPE) != null) return UserType.class.cast(session.getAttribute(SessionUtils.SESSION_VAR_USERTYPE)); else return null; } public static LoggedUserTO getloggedOnUser() { HttpSession session = getSession(); if (session != null && session.getAttribute(SessionUtils.SESSION_VAR_USER) != null) return LoggedUserTO.class.cast(session.getAttribute(SessionUtils.SESSION_VAR_USER)); else return null; } public static FacesMessage getMessage() { HttpSession session = getSession(); if (session != null && session.getAttribute(SessionUtils.SESSION_VAR_MESSAGE) != null) { FacesMessage msg = FacesMessage.class.cast(session.getAttribute(SessionUtils.SESSION_VAR_MESSAGE)); session.removeAttribute(SessionUtils.SESSION_VAR_MESSAGE); return msg; } else return null; } public static void addMessage(FacesMessage.Severity severity, String summary, String detail) { addMessage(getSession(), severity, summary, detail); } public static void addMessage(HttpSession session, FacesMessage.Severity severity, String summary, String detail) { if (session != null) session.setAttribute(SessionUtils.SESSION_VAR_MESSAGE, new FacesMessage(severity, summary, detail)); } }