|
|
@@ -3,11 +3,10 @@ package cn.iselab.mooctest.site.web.logic.fromDev.impl;
|
|
|
import cn.iselab.mooctest.site.common.constant.SubsiteConstants;
|
|
|
import cn.iselab.mooctest.site.models.Task;
|
|
|
import cn.iselab.mooctest.site.models.User;
|
|
|
-import cn.iselab.mooctest.site.service.AssignedTaskService;
|
|
|
-import cn.iselab.mooctest.site.service.ExamService;
|
|
|
-import cn.iselab.mooctest.site.service.PaperService;
|
|
|
-import cn.iselab.mooctest.site.service.UserService;
|
|
|
+import cn.iselab.mooctest.site.models.instancePermission.TaskPermission;
|
|
|
+import cn.iselab.mooctest.site.service.*;
|
|
|
import cn.iselab.mooctest.site.service.fromDev.PluginService;
|
|
|
+import cn.iselab.mooctest.site.service.instancePermission.TaskPermissionService;
|
|
|
import cn.iselab.mooctest.site.util.data.EncryptionUtil;
|
|
|
import cn.iselab.mooctest.site.web.data.CaseExtendsVO;
|
|
|
import cn.iselab.mooctest.site.web.data.fromDev.AddGradeVO;
|
|
|
@@ -18,6 +17,7 @@ import cn.iselab.mooctest.site.web.logic.fromDev.PluginLogic;
|
|
|
import com.aliyun.oss.HttpMethod;
|
|
|
import com.aliyun.oss.OSSClient;
|
|
|
import com.aliyun.oss.model.GeneratePresignedUrlRequest;
|
|
|
+import org.apache.shiro.SecurityUtils;
|
|
|
import org.apache.shiro.authz.UnauthorizedException;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
@@ -57,6 +57,10 @@ public class PluginLogicImpl extends BaseLogic implements PluginLogic{
|
|
|
private CaseLogic caseLogic;
|
|
|
@Autowired
|
|
|
private PaperService paperService;
|
|
|
+ @Autowired
|
|
|
+ private TaskService taskService;
|
|
|
+ @Autowired
|
|
|
+ private TaskPermissionService taskPermissionService;
|
|
|
|
|
|
@Override
|
|
|
public String getDownloadSignature(String taskID, String workerID, String taskType, String caseName) {
|
|
|
@@ -175,7 +179,13 @@ public class PluginLogicImpl extends BaseLogic implements PluginLogic{
|
|
|
if(!EncryptionUtil.encryptMD5(token).equals(user.getPassword())){
|
|
|
throw new UnauthorizedException("unauthorized");
|
|
|
}
|
|
|
- Task task = examService.getExamByIdAndParticipantIdIfPermited(Long.parseLong(taskId),user.getId());
|
|
|
+ Task task = null;
|
|
|
+ List<TaskPermission> taskPermissions = taskPermissionService.getByUserIdAndInstanceId(user.getId(),Long.parseLong(taskId));
|
|
|
+ if(taskPermissions.size() != 0) {
|
|
|
+ task = taskService.getTask(Long.parseLong(taskId));
|
|
|
+ }else {
|
|
|
+ task = examService.getExamByIdAndParticipantIdIfPermited(Long.parseLong(taskId),user.getId());
|
|
|
+ }
|
|
|
return wrapLoginResultVO(task,user);
|
|
|
}
|
|
|
|
|
|
@@ -185,7 +195,13 @@ public class PluginLogicImpl extends BaseLogic implements PluginLogic{
|
|
|
if(!EncryptionUtil.encryptMD5(token).equals(user.getPassword())){
|
|
|
throw new UnauthorizedException("unauthorized");
|
|
|
}
|
|
|
- Task task = examService.getExamByIdAndParticipantIdIfPermited(Long.parseLong(taskId),user.getId());
|
|
|
+ Task task = null;
|
|
|
+ List<TaskPermission> taskPermissions = taskPermissionService.getByUserIdAndInstanceId(user.getId(),Long.parseLong(taskId));
|
|
|
+ if(taskPermissions.size() != 0) {
|
|
|
+ task = taskService.getTask(Long.parseLong(taskId));
|
|
|
+ }else {
|
|
|
+ task = examService.getExamByIdAndParticipantIdIfPermited(Long.parseLong(taskId),user.getId());
|
|
|
+ }
|
|
|
PluginResultVO pluginResultVO = wrapLoginResultVO(task,user);
|
|
|
Long paperId = paperService.getByExamId(task.getId()).getId();
|
|
|
List<CaseExtendsVO> caseExtendsVOS = caseLogic.getCasesForExam(paperId,Long.parseLong(taskId),user.getId());
|