#21 -- Fix permissions

This commit is contained in:
Anton Romanov 2025-04-15 22:43:34 +04:00
parent 633d5ad58f
commit 9a6e8e1478
3 changed files with 15 additions and 4 deletions

View File

@ -7,6 +7,7 @@ import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import ru.ulstu.aspirant.service.AspirantService;
import ru.ulstu.report.model.dto.ReportValueDto; import ru.ulstu.report.model.dto.ReportValueDto;
import ru.ulstu.report.service.ReportValueService; import ru.ulstu.report.service.ReportValueService;
@ -16,9 +17,11 @@ import java.io.IOException;
@RequestMapping("report-value") @RequestMapping("report-value")
public class ReportValueController { public class ReportValueController {
private final ReportValueService reportValueService; private final ReportValueService reportValueService;
private final AspirantService aspirantService;
public ReportValueController(ReportValueService reportValueService) { public ReportValueController(ReportValueService reportValueService, AspirantService aspirantService) {
this.reportValueService = reportValueService; this.reportValueService = reportValueService;
this.aspirantService = aspirantService;
} }
@GetMapping("edit-report-value/{reportId}/{indicatorId}") @GetMapping("edit-report-value/{reportId}/{indicatorId}")
@ -26,6 +29,7 @@ public class ReportValueController {
@PathVariable("indicatorId") Integer indicatorId, @PathVariable("indicatorId") Integer indicatorId,
Model model) { Model model) {
model.addAttribute("reportValue", reportValueService.getByIndicatorId(reportId, indicatorId)); model.addAttribute("reportValue", reportValueService.getByIndicatorId(reportId, indicatorId));
model.addAttribute("canEdit", reportValueService.canEdit(reportId));
return "report/editReportValue"; return "report/editReportValue";
} }

View File

@ -7,6 +7,7 @@ import ru.ulstu.indicator.service.IndicatorService;
import ru.ulstu.report.model.ReportValue; import ru.ulstu.report.model.ReportValue;
import ru.ulstu.report.model.dto.ReportValueDto; import ru.ulstu.report.model.dto.ReportValueDto;
import ru.ulstu.report.repository.ReportValueRepository; import ru.ulstu.report.repository.ReportValueRepository;
import ru.ulstu.user.UserService;
import java.io.IOException; import java.io.IOException;
import java.util.List; import java.util.List;
@ -17,15 +18,17 @@ public class ReportValueService {
private final IndicatorService indicatorService; private final IndicatorService indicatorService;
private final FileService fileService; private final FileService fileService;
private final ReportService reportService; private final ReportService reportService;
private final UserService userService;
public ReportValueService(ReportValueRepository reportValueRepository, public ReportValueService(ReportValueRepository reportValueRepository,
IndicatorService indicatorService, IndicatorService indicatorService,
FileService fileService, FileService fileService,
ReportService reportService) { ReportService reportService, UserService userService) {
this.reportValueRepository = reportValueRepository; this.reportValueRepository = reportValueRepository;
this.indicatorService = indicatorService; this.indicatorService = indicatorService;
this.fileService = fileService; this.fileService = fileService;
this.reportService = reportService; this.reportService = reportService;
this.userService = userService;
} }
public ReportValue saveReportValue(ReportValueDto reportValueDto) throws IOException { public ReportValue saveReportValue(ReportValueDto reportValueDto) throws IOException {
@ -66,4 +69,8 @@ public class ReportValueService {
} }
return new ReportValueDto(reportValue, reportId); return new ReportValueDto(reportValue, reportId);
} }
public boolean canEdit(Integer reportId) {
return reportService.getReportById(reportId).getAspirant().getUser().equals(userService.getCurrentUser());
}
} }

View File

@ -11,7 +11,7 @@
<input type="hidden" th:field="*{reportId}"> <input type="hidden" th:field="*{reportId}">
<input type="hidden" th:field="*{indicator.id}"> <input type="hidden" th:field="*{indicator.id}">
<div class="row"> <div class="row" th:if="${canEdit}">
<div class="col col-md-6"> <div class="col col-md-6">
<div class="form-group"> <div class="form-group">
<label class="form-label" for="loader">Загрузка подтверждающих документов</label> <label class="form-label" for="loader">Загрузка подтверждающих документов</label>
@ -34,7 +34,7 @@
<input type="hidden" <input type="hidden"
th:field="*{files[__${rowStat.index}__].tmpFileName}"/> th:field="*{files[__${rowStat.index}__].tmpFileName}"/>
<div class="col col-md-1 m-1"> <div class="col col-md-1 m-1">
<a class="btn btn-danger float-right" <a class="btn btn-danger float-right" th:if="${canEdit}"
th:onclick="|$('#files${rowStat.index}\\.deleted').val('true'); $('#files${rowStat.index}').hide(); |"> th:onclick="|$('#files${rowStat.index}\\.deleted').val('true'); $('#files${rowStat.index}').hide(); |">
<span><i class="fa fa-times"></i></span> <span><i class="fa fa-times"></i></span>
</a> </a>