浏览代码

theme fix

shimingxy 5 年之前
父节点
当前提交
79b25624fe

+ 14 - 0
maxkey-core/src/main/java/org/maxkey/web/tag/ThemeTagDirective.java

@@ -9,6 +9,8 @@ import java.io.IOException;
 import java.util.Map;
 import javax.servlet.http.Cookie;
 import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.maxkey.constants.ConstantsTimeInterval;
 import org.maxkey.web.WebConstants;
 import org.maxkey.web.WebContext;
 import org.slf4j.Logger;
@@ -29,6 +31,9 @@ public class ThemeTagDirective implements TemplateDirectiveModel {
     private static final Logger _logger = LoggerFactory.getLogger(ThemeTagDirective.class);
     @Autowired
     private HttpServletRequest request;
+    
+    @Autowired
+    HttpServletResponse response;
 
     @SuppressWarnings("rawtypes")
     @Override
@@ -49,6 +54,15 @@ public class ThemeTagDirective implements TemplateDirectiveModel {
                 _logger.trace("read theme form cookie , theme is " + theme);
             }
         }
+        
+        //每次登陆完成设置一次COOKIE
+        if (request.getAttribute(WebConstants.THEME_COOKIE_NAME) == null 
+                && null != WebContext.getUserInfo()) {
+            request.setAttribute(WebConstants.THEME_COOKIE_NAME, "theme");
+            WebContext.setCookie(response, 
+                    WebConstants.THEME_COOKIE_NAME, theme, ConstantsTimeInterval.ONE_WEEK);
+        }
+        
         env.getOut().append(theme == null ? "default" : theme);
     }
 

+ 2 - 1
maxkey-web-maxkey/src/main/java/org/maxkey/web/contorller/SafeController.java

@@ -4,6 +4,7 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 import org.maxkey.constants.ConstantsOperateMessage;
+import org.maxkey.constants.ConstantsTimeInterval;
 import org.maxkey.crypto.ReciprocalUtils;
 import org.maxkey.crypto.password.PasswordReciprocal;
 import org.maxkey.dao.service.UserInfoService;
@@ -171,7 +172,7 @@ public class SafeController {
 		userInfo.setEmail(email);
 
         userInfo.setTheme(theme);
-        WebContext.setCookie(response, WebConstants.THEME_COOKIE_NAME, theme, 0);
+        WebContext.setCookie(response, WebConstants.THEME_COOKIE_NAME, theme, ConstantsTimeInterval.ONE_WEEK);
         
 		userInfoService.changeEmail(userInfo);