diff --git a/src/main/java/ru/soune/nocopy/handler/ComplaintEntityHandler.java b/src/main/java/ru/soune/nocopy/handler/ComplaintEntityHandler.java index eb20b8f..436b969 100644 --- a/src/main/java/ru/soune/nocopy/handler/ComplaintEntityHandler.java +++ b/src/main/java/ru/soune/nocopy/handler/ComplaintEntityHandler.java @@ -15,9 +15,11 @@ import ru.soune.nocopy.dto.complaint.ComplaintResponse; import ru.soune.nocopy.entity.complaint.ComplaintEntity; import ru.soune.nocopy.entity.complaint.ComplaintStatus; import ru.soune.nocopy.entity.user.User; +import ru.soune.nocopy.entity.violation.Violation; import ru.soune.nocopy.repository.ComplaintEntityRepository; import ru.soune.nocopy.repository.FileEntityRepository; import ru.soune.nocopy.repository.UserRepository; +import ru.soune.nocopy.repository.ViolationRepository; import ru.soune.nocopy.service.complaint.ComplaintEntityService; import ru.soune.nocopy.service.register.AuthService; import ru.soune.nocopy.service.user.UserService; @@ -42,6 +44,8 @@ public class ComplaintEntityHandler implements RequestHandler { private final ComplaintEntityRepository complaintEntityRepository; + private final ViolationRepository violationRepository; + @Override public BaseResponse handle(BaseRequest request) throws Exception { Integer msgId = request.getMsgId(); @@ -86,14 +90,13 @@ public class ComplaintEntityHandler implements RequestHandler { "violation_id is required"); if (req.getComplaintText() == null) return errorResponse(msgId, MessageCode.NOT_FOUND.getCode(), "text is required"); -// -// ComplaintEntity complaintEntity = complaintEntityRepository.findById(req.getId()).orElse(null); -// -// if (complaintEntity == null || !Objects.equals( -// complaintEntity.getViolation().getFileEntity().getUserId(), userId)) { -// return errorResponse(msgId, MessageCode.USER_NOT_HAD_PERMISSION.getCode(), -// MessageCode.USER_NOT_HAD_PERMISSION.getDescription()); -// } + + Violation violation = violationRepository.findById(req.getViolationId()).orElse(null); + + if (violation == null || !Objects.equals(violation.getFileEntity().getUserId(), userId)) { + return errorResponse(msgId, MessageCode.USER_NOT_HAD_PERMISSION.getCode(), + MessageCode.USER_NOT_HAD_PERMISSION.getDescription()); + } ComplaintResponse response = complaintService.createComplaint(req);