Browse Source

修复切换科目时解绑当前评卷员空指针问题;切换科目跳转路径问题;切换模式跳转问题;权限登录错误问题;

ting.yin 4 năm trước cách đây
mục cha
commit
298c0bcf3c

+ 4 - 0
stmms-web/src/main/java/cn/com/qmth/stmms/common/controller/LoginController.java

@@ -91,6 +91,10 @@ public class LoginController {
                 return modelAndView;
             }
         } else if ("mark-login".equals(showType) || "mark-login".equals(loginType)) {
+            if (u.getRole() != Role.MARKER) {
+                modelAndView.addObject("message", "user.login.error.access");
+                return modelAndView;
+            }
             if (u.getLastLoginTime() == null) {
                 u.refreshAccessToken();
                 userService.save(u);

+ 1 - 1
stmms-web/src/main/java/cn/com/qmth/stmms/common/interceptor/SessionInterceptor.java

@@ -70,7 +70,7 @@ public class SessionInterceptor extends HandlerInterceptorAdapter {
      * @return
      * @throws IOException
      */
-    protected boolean sessionExpireMarker(HttpServletRequest request, HttpServletResponse response, String redirectURI)
+    protected boolean sessionExpireAjax(HttpServletRequest request, HttpServletResponse response, String redirectURI)
             throws IOException {
         StmmsSession session = RequestUtils.getSession(request);
         session.setInvalid(true);

+ 3 - 0
stmms-web/src/main/java/cn/com/qmth/stmms/mark/MarkController.java

@@ -197,6 +197,9 @@ public class MarkController extends BaseController {
     @RequestMapping("/index")
     public ModelAndView index(HttpServletRequest request, @RequestParam(value = "mode", required = false) String mode) {
         Marker marker = RequestUtils.getWebUser(request).getMarker();
+        if (marker == null) {
+            return new ModelAndView("redirect:/mark/subject-select");
+        }
         ModelAndView modelAndView = getMarkModeView(marker, MarkMode.findByName(mode));
         preProcess(marker, modelAndView);
         return modelAndView;

+ 5 - 1
stmms-web/src/main/java/cn/com/qmth/stmms/mark/interceptor/MarkInterceptor.java

@@ -37,7 +37,11 @@ public class MarkInterceptor extends SessionInterceptor {
             }
             return true;
         }
-        return sessionExpireMarker(request, response, "/login");
+        if (request.getServletPath().startsWith("/mark/subject") || request.getServletPath().startsWith("/mark/index")
+                || request.getServletPath().startsWith("/mark/rest")) {
+            return sessionExpire(request, response, "/login");
+        }
+        return sessionExpireAjax(request, response, "/login");
     }
 
     private WebUser buildUser(HttpServletRequest request) {

+ 2 - 2
stmms-web/src/main/webapp/WEB-INF/views/modules/mark/subjectSelect.jsp

@@ -50,8 +50,8 @@
 
             $(document).ajaxError(function (evt, req, settings) {
                 if (req.status == 401) {
-                    alert("权限失效,请重新登录!");
-                    window.location.href = "/mark-login";
+                	alert("账号已在其他地方登录!");
+                    window.location.href = "/login";
                 }
             });