From 6d1b36f02e11543562a64f6cec6894860b63aca0 Mon Sep 17 00:00:00 2001 From: Vladislav Kopnin Date: Mon, 28 Sep 2026 17:30:11 +0300 Subject: [PATCH] Defense: keep assignment text for admins, hide it only from students --- .../kotlin/ru/ysu/lms/progress/DefenseMyController.kt | 8 +++++--- .../src/main/kotlin/ru/ysu/lms/progress/DefenseService.kt | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/services/progress-service/src/main/kotlin/ru/ysu/lms/progress/DefenseMyController.kt b/services/progress-service/src/main/kotlin/ru/ysu/lms/progress/DefenseMyController.kt index cb00298..2081d51 100644 --- a/services/progress-service/src/main/kotlin/ru/ysu/lms/progress/DefenseMyController.kt +++ b/services/progress-service/src/main/kotlin/ru/ysu/lms/progress/DefenseMyController.kt @@ -22,15 +22,17 @@ class DefenseMyController( @GetMapping fun my( @AuthenticationPrincipal jwt: Jwt, - ): List = service.mySessions(UUID.fromString(jwt.subject)).map { hideCode(it) } + ): List = service.mySessions(UUID.fromString(jwt.subject)).map { hideForStudent(it) } @GetMapping("/{labId}") fun one( @PathVariable labId: UUID, @AuthenticationPrincipal jwt: Jwt, - ): DefenseDto? = service.mySession(UUID.fromString(jwt.subject), labId)?.let { hideCode(it) } + ): DefenseDto? = service.mySession(UUID.fromString(jwt.subject), labId)?.let { hideForStudent(it) } - private fun hideCode(d: DefenseDto): DefenseDto = if (d.status == DefenseStatus.waiting.name) d.copy(code = null) else d + /** Студент не должен видеть ни код, ни текст задания до ввода кода. */ + private fun hideForStudent(d: DefenseDto): DefenseDto = + if (d.status == DefenseStatus.waiting.name) d.copy(code = null, assignmentMd = "") else d @PostMapping("/start") fun start( diff --git a/services/progress-service/src/main/kotlin/ru/ysu/lms/progress/DefenseService.kt b/services/progress-service/src/main/kotlin/ru/ysu/lms/progress/DefenseService.kt index 8e76868..687536e 100644 --- a/services/progress-service/src/main/kotlin/ru/ysu/lms/progress/DefenseService.kt +++ b/services/progress-service/src/main/kotlin/ru/ysu/lms/progress/DefenseService.kt @@ -204,7 +204,7 @@ class DefenseService( labId = s.labId.toString(), status = s.status, code = s.code, - assignmentMd = if (s.status == DefenseStatus.waiting.name) "" else s.assignmentMd, + assignmentMd = s.assignmentMd, startedAt = s.startedAt?.toString(), readyAt = s.readyAt?.toString(), readyReason = s.readyReason,