|
@@ -1,15 +1,17 @@
|
|
package cn.com.qmth.stmms.mark.interceptor;
|
|
package cn.com.qmth.stmms.mark.interceptor;
|
|
|
|
|
|
|
|
+import javax.servlet.http.HttpServletRequest;
|
|
|
|
+import javax.servlet.http.HttpServletResponse;
|
|
|
|
+
|
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
+
|
|
|
|
+import cn.com.qmth.stmms.biz.exam.model.Marker;
|
|
import cn.com.qmth.stmms.biz.exam.service.MarkerService;
|
|
import cn.com.qmth.stmms.biz.exam.service.MarkerService;
|
|
import cn.com.qmth.stmms.biz.user.service.UserService;
|
|
import cn.com.qmth.stmms.biz.user.service.UserService;
|
|
import cn.com.qmth.stmms.common.domain.WebUser;
|
|
import cn.com.qmth.stmms.common.domain.WebUser;
|
|
import cn.com.qmth.stmms.common.enums.Role;
|
|
import cn.com.qmth.stmms.common.enums.Role;
|
|
import cn.com.qmth.stmms.common.interceptor.SessionInterceptor;
|
|
import cn.com.qmth.stmms.common.interceptor.SessionInterceptor;
|
|
import cn.com.qmth.stmms.common.utils.RequestUtils;
|
|
import cn.com.qmth.stmms.common.utils.RequestUtils;
|
|
-import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
-
|
|
|
|
-import javax.servlet.http.HttpServletRequest;
|
|
|
|
-import javax.servlet.http.HttpServletResponse;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
* Mark模块操作拦截器
|
|
* Mark模块操作拦截器
|
|
@@ -25,8 +27,7 @@ public class MarkInterceptor extends SessionInterceptor {
|
|
private MarkerService markerService;
|
|
private MarkerService markerService;
|
|
|
|
|
|
@Override
|
|
@Override
|
|
- public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
|
|
|
|
- throws Exception {
|
|
|
|
|
|
+ public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
|
|
WebUser wu = buildUser(request);
|
|
WebUser wu = buildUser(request);
|
|
if (wu != null) {
|
|
if (wu != null) {
|
|
if (wu.getUser().getLastLoginTime() == null && request.getServletPath().startsWith("/mark/reset")) {
|
|
if (wu.getUser().getLastLoginTime() == null && request.getServletPath().startsWith("/mark/reset")) {
|
|
@@ -35,12 +36,20 @@ public class MarkInterceptor extends SessionInterceptor {
|
|
} else if (wu.getMarkerId() == null && !request.getServletPath().startsWith("/mark/subject")) {
|
|
} else if (wu.getMarkerId() == null && !request.getServletPath().startsWith("/mark/subject")) {
|
|
// 通用帐号未选择科目,首先选择强制选择评卷科目
|
|
// 通用帐号未选择科目,首先选择强制选择评卷科目
|
|
return redirect(request, response, "/mark/subject-select");
|
|
return redirect(request, response, "/mark/subject-select");
|
|
|
|
+ } else if (request.getServletPath().startsWith("/mark/logout")) {
|
|
|
|
+ return true;
|
|
|
|
+ } else if (wu.getMarkerId() != null && wu.getMarker() == null) {
|
|
|
|
+ // 用户存在但评卷员解绑
|
|
|
|
+ return sessionExpireAjax(request, response, "/mark-login");
|
|
|
|
+ } else if (request.getServletPath().startsWith("/mark/logout")) {
|
|
|
|
+ return true;
|
|
}
|
|
}
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
- if (request.getServletPath().startsWith("/mark/subject-select") || request.getServletPath()
|
|
|
|
- .startsWith("/mark/index") || request.getServletPath().startsWith("/mark/reset") || request
|
|
|
|
- .getServletPath().startsWith("/mark/logout")) {
|
|
|
|
|
|
+ if (request.getServletPath().startsWith("/mark/subject-select")
|
|
|
|
+ || request.getServletPath().startsWith("/mark/index")
|
|
|
|
+ || request.getServletPath().startsWith("/mark/reset")
|
|
|
|
+ || request.getServletPath().startsWith("/mark/logout")) {
|
|
return sessionExpire(request, response, "/mark-login");
|
|
return sessionExpire(request, response, "/mark-login");
|
|
}
|
|
}
|
|
return sessionExpireAjax(request, response, "/mark-login");
|
|
return sessionExpireAjax(request, response, "/mark-login");
|
|
@@ -50,7 +59,10 @@ public class MarkInterceptor extends SessionInterceptor {
|
|
WebUser wu = WebUser.buildFromSession(RequestUtils.getSession(request), userService);
|
|
WebUser wu = WebUser.buildFromSession(RequestUtils.getSession(request), userService);
|
|
if (wu != null && wu.getRole().equals(Role.MARKER)) {
|
|
if (wu != null && wu.getRole().equals(Role.MARKER)) {
|
|
if (wu.getMarkerId() != null) {
|
|
if (wu.getMarkerId() != null) {
|
|
- wu.setMarker(markerService.findById(wu.getMarkerId()));
|
|
|
|
|
|
+ Marker marker = markerService.findById(wu.getMarkerId());
|
|
|
|
+ if (marker != null) {
|
|
|
|
+ wu.setMarker(marker);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
RequestUtils.setWebUser(request, wu);
|
|
RequestUtils.setWebUser(request, wu);
|
|
return wu;
|
|
return wu;
|