Parcourir la source

feat: 增加助教身份

weijin il y a 4 ans
Parent
commit
07873218d5

+ 1 - 1
src/main/java/com/nju/edu/eval/aspect/auth/Authorized.java

@@ -14,6 +14,6 @@ import java.lang.annotation.Target;
 @Target(ElementType.METHOD)
 public @interface Authorized {
     UserRole[]  roles() default {
-        UserRole.ADMIN, UserRole.STUDENT, UserRole.HR, UserRole.TEACHER, UserRole.STAFF, UserRole.SEEC, UserRole.SEECX};
+        UserRole.ADMIN, UserRole.STUDENT, UserRole.HR, UserRole.TEACHER, UserRole.STAFF, UserRole.SEEC, UserRole.SEECX, UserRole.ASSISTANT};
     String message() default "";
 }

+ 2 - 1
src/main/java/com/nju/edu/eval/publicdatas/enums/UserRole.java

@@ -12,5 +12,6 @@ public enum UserRole {
     ADMIN, //网站管理员
     STAFF, //员工
     SEEC, //Seecoder开发人员
-    SEECX //Seecoder开发人员X
+    SEECX, //Seecoder开发人员X
+    ASSISTANT
 }

+ 8 - 8
src/main/java/com/nju/edu/eval/web/controller/ExamController.java

@@ -37,14 +37,14 @@ public class ExamController {
 
     @ApiOperation("创建考试")
     @PostMapping("")
-    @Authorized(roles = {UserRole.TEACHER, UserRole.HR, UserRole.STUDENT})
+    @Authorized(roles = {UserRole.TEACHER, UserRole.HR, UserRole.ASSISTANT})
     public Response createExam(@ApiIgnore User user, @RequestBody CreateExamVO examVO) {
         return Response.buildSuccess(examService.createExam(examVO, user.getId()));
     }
 
     @ApiOperation("为创建的考试通过样卷来设置题目")
     @PostMapping("/question/sample/{examId}/")
-    @Authorized(roles = {UserRole.TEACHER, UserRole.HR})
+    @Authorized(roles = {UserRole.TEACHER, UserRole.HR, UserRole.ASSISTANT})
     public Response setExamQuestionsBySampleExamPaper(@PathVariable int examId,
                                                       @RequestParam(value = "sampleExamPaperId") int sampleExamPaperId) {
         examService.setExamQuestionsBySampleExamPaper(examId, sampleExamPaperId);
@@ -88,7 +88,7 @@ public class ExamController {
 
     @ApiOperation("为考试更新题目及对应分值")
     @PutMapping("/{examId}/questions/")
-//    @Authorized(roles = {UserRole.ADMIN, UserRole.HR, UserRole.TEACHER})
+//    @Authorized(roles = {UserRole.ADMIN, UserRole.HR, UserRole.TEACHER, UserRole.ASSISTANT})
     public Response updateQuestionsOfExam(@PathVariable Integer examId,
                                       @RequestBody QuestionScoreMapVO questionScoreMapVO) {
         examService.updateQuestionsOfExam(examId, questionScoreMapVO);
@@ -97,7 +97,7 @@ public class ExamController {
 
     @ApiOperation("延长考试时间")
     @PutMapping("/{examId}/time")
-    @Authorized(roles = {UserRole.ADMIN, UserRole.HR, UserRole.TEACHER})
+    @Authorized(roles = {UserRole.ADMIN, UserRole.HR, UserRole.TEACHER, UserRole.ASSISTANT})
     public Response extendExamTime(@PathVariable Integer examId,
                                    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @RequestParam Date endTime)  {
         Optional<Exam> examEntityOptional = examService.extendExamTime(examId, endTime);
@@ -108,7 +108,7 @@ public class ExamController {
     @ApiOperation("获得学生参加的考试")
     @ApiParam()
     @GetMapping("/student/exams")
-    @Authorized(roles = {UserRole.STUDENT})
+    @Authorized()
     public Response getExamsByCurrentStudent(@ApiIgnore User user,
                                              @RequestParam(value = "pageSize", required = false) int pageSize,
                                              @RequestParam(value = "pageNum", required = false) int pageNum,
@@ -119,7 +119,7 @@ public class ExamController {
 
     @ApiOperation("获得老师/HR创建的考试")
     @GetMapping("/teacher/exams")
-    @Authorized(roles = {UserRole.TEACHER, UserRole.HR})
+    @Authorized(roles = {UserRole.TEACHER, UserRole.HR, UserRole.ASSISTANT})
     public Response getExamsByCurrentTeacherOrHR(@ApiIgnore User user,
                                                  @RequestParam(value = "pageSize", required = false) int pageSize,
                                                  @RequestParam(value = "pageNum", required = false) int pageNum,
@@ -140,7 +140,7 @@ public class ExamController {
 
     @ApiOperation("修改考试名称")
     @PutMapping("/update/name")
-    @Authorized(roles = UserRole.TEACHER)
+    @Authorized(roles = {UserRole.TEACHER, UserRole.ASSISTANT})
     public Response updateExamName(@ApiIgnore User user,
                                    @RequestParam(value = "examId", required = true) Integer examId,
                                    @RequestParam(value = "name", required = true) String name
@@ -151,7 +151,7 @@ public class ExamController {
 
     @ApiOperation("隐藏考试")
     @PutMapping("/update/hidden")
-    @Authorized(roles = UserRole.TEACHER)
+    @Authorized(roles = {UserRole.TEACHER, UserRole.ASSISTANT})
     public Response setIsHidden(@ApiIgnore User user,
                                 @RequestParam(value = "examId", required = true) Integer examId,
                                 @RequestParam(value = "hidden", required = true) boolean hidden

+ 1 - 1
src/main/java/com/nju/edu/eval/web/controller/QuestionController.java

@@ -25,7 +25,7 @@ public class QuestionController {
 
     @ApiOperation("根据Id获得题目的全部信息,包括解答")
     @GetMapping("{id}")
-//    @Authorized(roles = {UserRole.HR, UserRole.TEACHER})
+//    @Authorized(roles = {UserRole.HR, UserRole.TEACHER, UserRole.ASSISTANT})
     public Response getQuestionById(@PathVariable String id) {
         return Response.buildSuccess(questionService.getQuestionById(id));
     }

+ 1 - 1
src/main/java/com/nju/edu/eval/web/controller/ScoreController.java

@@ -37,7 +37,7 @@ public class ScoreController {
 
     @ApiOperation("获得某次考试的成绩报告(教师视角)")
     @GetMapping("/all")
-    @Authorized(roles = UserRole.TEACHER)
+    @Authorized(roles = {UserRole.TEACHER, UserRole.ASSISTANT})
     public Response getReportByExamId(@RequestParam(value = "examId") Integer examId) {
         return Response.buildSuccess(scoreService.getReportByExamId(examId));
     }

+ 1 - 1
src/main/java/com/nju/edu/eval/web/controller/UserController.java

@@ -36,7 +36,7 @@ public class UserController {
 
     @ApiOperation("获得报名某次考试的所有学生")
     @GetMapping("/{examId}")
-    @Authorized(roles = {UserRole.ADMIN, UserRole.HR, UserRole.TEACHER})
+    @Authorized(roles = {UserRole.ADMIN, UserRole.HR, UserRole.TEACHER, UserRole.ASSISTANT})
     public Response getUsersByExamId(@PathVariable Integer examId) {
         return Response.buildSuccess(userService.getUsersByExamId(examId));
     }

+ 1 - 1
src/main/resources/application-test.yml

@@ -1,5 +1,5 @@
 server:
-  port: 8080
+  port: 8081
 spring:
   datasource:
     url: jdbc:mysql://47.111.95.164:3306/eval?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF-8&useSSL=false