package com.jspxcms.core.support;
import javax.servlet.ServletRequest;
import com.jspxcms.core.domain.Site;
import com.jspxcms.core.domain.User;
/**
* CMS上下文
*
* @author liufang
*
*/
public abstract class Context {
public static Integer getCurrentSiteId(ServletRequest request) {
Site site = getCurrentSite(request);
return site != null ? site.getId() : null;
}
public static Site getCurrentSite(ServletRequest request) {
Site site = (Site) request.getAttribute(SITE_REQUEST_NAME);
return site;
}
public static void setCurrentSite(ServletRequest request, Site site) {
request.setAttribute(SITE_REQUEST_NAME, site);
}
public static void resetCurrentSite(ServletRequest request) {
request.removeAttribute(SITE_REQUEST_NAME);
}
public static Integer getCurrentUserId(ServletRequest request) {
User user = getCurrentUser(request);
return user != null ? user.getId() : null;
}
public static User getCurrentUser(ServletRequest request) {
User user = (User) request.getAttribute(USER_REQUEST_NAME);
return user;
}
public static void setCurrentUser(ServletRequest request, User user) {
request.setAttribute(USER_REQUEST_NAME, user);
}
public static void resetCurrentUser(ServletRequest request) {
request.removeAttribute(USER_REQUEST_NAME);
}
/**
* 页数线程变量
*/
private static ThreadLocal<Site> siteHolder = new ThreadLocal<Site>();
public static void setCurrentSite(Site site) {
siteHolder.set(site);
}
public static Site getCurrentSite() {
return siteHolder.get();
}
public static void resetCurrentSite() {
siteHolder.remove();
}
private static final String SITE_REQUEST_NAME = "_CMS_SITE_REQUEST";
private static final String USER_REQUEST_NAME = "_CMS_USER_REQUEST";
}