package cn.jfinalbbs.interceptor;
import cn.jfinalbbs.common.Constants;
import cn.jfinalbbs.link.Link;
import cn.jfinalbbs.section.Section;
import cn.jfinalbbs.user.User;
import cn.jfinalbbs.utils.DateUtil;
import cn.jfinalbbs.utils.StrUtil;
import com.jfinal.aop.Interceptor;
import com.jfinal.aop.Invocation;
import java.util.Date;
/**
* Created by liuyang on 15/4/2.
*/
public class CommonInterceptor implements Interceptor {
public void intercept(Invocation ai) {
// session cookie 互换
String user_cookie = ai.getController().getCookie(Constants.USER_COOKIE);
User user_session = (User) ai.getController().getSession().getAttribute(Constants.USER_SESSION);
if(StrUtil.isBlank(user_cookie) && user_session != null) {
ai.getController().setCookie(Constants.USER_COOKIE, StrUtil.getEncryptionToken(user_session.getStr("token")), 30*24 * 60 * 60);
} else if (!StrUtil.isBlank(user_cookie) && user_session == null) {
User user = User.me.findByToken(StrUtil.getDecryptToken(user_cookie));
ai.getController().setSessionAttr(Constants.USER_SESSION, user);
}
// 获取今天时间,放到session里
ai.getController().setSessionAttr(Constants.TODAY, DateUtil.formatDate(new Date()));
// 查询模块
ai.getController().getRequest().setAttribute("sections", Section.me.findShow());
// 查询友链
ai.getController().getRequest().setAttribute("links", Link.me.findAll());
ai.getController().getRequest().setAttribute("baseUrl", Constants.getBaseUrl());
ai.getController().getRequest().setAttribute("siteTitle", Constants.getSiteTitle());
ai.invoke();
}
}