dev #1
@@ -3,12 +3,16 @@ package ru.soune.nocopy.adminpanel.handler;
|
|||||||
import com.fasterxml.jackson.core.type.TypeReference;
|
import com.fasterxml.jackson.core.type.TypeReference;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import com.fasterxml.jackson.databind.node.ObjectNode;
|
import com.fasterxml.jackson.databind.node.ObjectNode;
|
||||||
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.http.ResponseEntity;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import ru.soune.nocopy.adminpanel.dto.*;
|
import ru.soune.nocopy.adminpanel.dto.*;
|
||||||
import ru.soune.nocopy.adminpanel.entity.AdminCreateTemplate;
|
import ru.soune.nocopy.adminpanel.entity.AdminCreateTemplate;
|
||||||
|
import ru.soune.nocopy.adminpanel.entity.AdminSection;
|
||||||
import ru.soune.nocopy.adminpanel.service.AdminCreateTemplateService;
|
import ru.soune.nocopy.adminpanel.service.AdminCreateTemplateService;
|
||||||
|
import ru.soune.nocopy.adminpanel.service.AdminSectionPermissionService;
|
||||||
import ru.soune.nocopy.adminpanel.util.MessageCode;
|
import ru.soune.nocopy.adminpanel.util.MessageCode;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
@@ -24,6 +28,10 @@ public class CreateAdminTemplateHandler implements RequestHandler {
|
|||||||
|
|
||||||
private final AdminCreateTemplateService adminCreateTemplateService;
|
private final AdminCreateTemplateService adminCreateTemplateService;
|
||||||
|
|
||||||
|
private final AdminSectionPermissionService adminSectionPermissionService;
|
||||||
|
|
||||||
|
private final HttpServletRequest httpServletRequest;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BaseResponse handle(BaseRequest request) {
|
public BaseResponse handle(BaseRequest request) {
|
||||||
AdminCreateTemplateRequest adminCreateTemplateRequest = objectMapper.convertValue(request.getMessageBody(),
|
AdminCreateTemplateRequest adminCreateTemplateRequest = objectMapper.convertValue(request.getMessageBody(),
|
||||||
@@ -42,6 +50,7 @@ public class CreateAdminTemplateHandler implements RequestHandler {
|
|||||||
|
|
||||||
private BaseResponse handleDelete(BaseRequest request, AdminCreateTemplateRequest adminCreateTemplateRequest) {
|
private BaseResponse handleDelete(BaseRequest request, AdminCreateTemplateRequest adminCreateTemplateRequest) {
|
||||||
Long adminCreateTemplateRequestId = adminCreateTemplateRequest.getId();
|
Long adminCreateTemplateRequestId = adminCreateTemplateRequest.getId();
|
||||||
|
Long currentUserId = (Long) httpServletRequest.getAttribute("userId");
|
||||||
|
|
||||||
if (adminCreateTemplateRequestId == null || !adminCreateTemplateService.existById(adminCreateTemplateRequestId)) {
|
if (adminCreateTemplateRequestId == null || !adminCreateTemplateService.existById(adminCreateTemplateRequestId)) {
|
||||||
return BaseResponse.builder()
|
return BaseResponse.builder()
|
||||||
@@ -52,6 +61,17 @@ public class CreateAdminTemplateHandler implements RequestHandler {
|
|||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!adminSectionPermissionService.canWrite(currentUserId,
|
||||||
|
AdminSection.STAFF)) {
|
||||||
|
|
||||||
|
return BaseResponse.builder()
|
||||||
|
.msgId(request.getMsgId())
|
||||||
|
.messageCode(MessageCode.PERMISSION_DENIED.getCode())
|
||||||
|
.messageDesc(MessageCode.PERMISSION_DENIED.getDescription())
|
||||||
|
.messageBody(Map.of("currentUserId", currentUserId))
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
|
||||||
adminCreateTemplateService.deleteTemplate(adminCreateTemplateRequestId);
|
adminCreateTemplateService.deleteTemplate(adminCreateTemplateRequestId);
|
||||||
|
|
||||||
|
|
||||||
@@ -65,6 +85,7 @@ public class CreateAdminTemplateHandler implements RequestHandler {
|
|||||||
|
|
||||||
private BaseResponse handleUpdate(BaseRequest request, AdminCreateTemplateRequest adminCreateTemplateRequest) {
|
private BaseResponse handleUpdate(BaseRequest request, AdminCreateTemplateRequest adminCreateTemplateRequest) {
|
||||||
Map<String, Integer> permissionsMap = adminCreateTemplateRequest.getPermissions();
|
Map<String, Integer> permissionsMap = adminCreateTemplateRequest.getPermissions();
|
||||||
|
Long currentUserId = (Long) httpServletRequest.getAttribute("userId");
|
||||||
|
|
||||||
if (permissionsMap == null || permissionsMap.isEmpty()) {
|
if (permissionsMap == null || permissionsMap.isEmpty()) {
|
||||||
return BaseResponse.builder()
|
return BaseResponse.builder()
|
||||||
@@ -75,6 +96,17 @@ public class CreateAdminTemplateHandler implements RequestHandler {
|
|||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!adminSectionPermissionService.canWrite(currentUserId,
|
||||||
|
AdminSection.STAFF)) {
|
||||||
|
|
||||||
|
return BaseResponse.builder()
|
||||||
|
.msgId(request.getMsgId())
|
||||||
|
.messageCode(MessageCode.PERMISSION_DENIED.getCode())
|
||||||
|
.messageDesc(MessageCode.PERMISSION_DENIED.getDescription())
|
||||||
|
.messageBody(Map.of("currentUserId", currentUserId))
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
|
||||||
ObjectNode node = objectMapper.createObjectNode();
|
ObjectNode node = objectMapper.createObjectNode();
|
||||||
|
|
||||||
for (Map.Entry<String, Integer> entry: permissionsMap.entrySet()) {
|
for (Map.Entry<String, Integer> entry: permissionsMap.entrySet()) {
|
||||||
@@ -106,6 +138,7 @@ public class CreateAdminTemplateHandler implements RequestHandler {
|
|||||||
|
|
||||||
private BaseResponse handleCreate(BaseRequest request, AdminCreateTemplateRequest adminCreateTemplateRequest) {
|
private BaseResponse handleCreate(BaseRequest request, AdminCreateTemplateRequest adminCreateTemplateRequest) {
|
||||||
Map<String, Integer> permissionsMap = adminCreateTemplateRequest.getPermissions();
|
Map<String, Integer> permissionsMap = adminCreateTemplateRequest.getPermissions();
|
||||||
|
Long currentUserId = (Long) httpServletRequest.getAttribute("userId");
|
||||||
|
|
||||||
if (permissionsMap == null || permissionsMap.isEmpty()) {
|
if (permissionsMap == null || permissionsMap.isEmpty()) {
|
||||||
return BaseResponse.builder()
|
return BaseResponse.builder()
|
||||||
@@ -115,6 +148,18 @@ public class CreateAdminTemplateHandler implements RequestHandler {
|
|||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (!adminSectionPermissionService.canWrite(currentUserId,
|
||||||
|
AdminSection.STAFF)) {
|
||||||
|
|
||||||
|
return BaseResponse.builder()
|
||||||
|
.msgId(request.getMsgId())
|
||||||
|
.messageCode(MessageCode.PERMISSION_DENIED.getCode())
|
||||||
|
.messageDesc(MessageCode.PERMISSION_DENIED.getDescription())
|
||||||
|
.messageBody(Map.of("currentUserId", currentUserId))
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
|
||||||
ObjectNode node = objectMapper.createObjectNode();
|
ObjectNode node = objectMapper.createObjectNode();
|
||||||
|
|
||||||
for (Map.Entry<String, Integer> entry: permissionsMap.entrySet()) {
|
for (Map.Entry<String, Integer> entry: permissionsMap.entrySet()) {
|
||||||
@@ -137,11 +182,25 @@ public class CreateAdminTemplateHandler implements RequestHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private BaseResponse handleGetAll(BaseRequest request) {
|
private BaseResponse handleGetAll(BaseRequest request) {
|
||||||
|
Long currentUserId = (Long) httpServletRequest.getAttribute("userId");
|
||||||
|
|
||||||
|
if (!adminSectionPermissionService.canRead(currentUserId,
|
||||||
|
AdminSection.STAFF)) {
|
||||||
|
|
||||||
|
return BaseResponse.builder()
|
||||||
|
.msgId(request.getMsgId())
|
||||||
|
.messageCode(MessageCode.PERMISSION_DENIED.getCode())
|
||||||
|
.messageDesc(MessageCode.PERMISSION_DENIED.getDescription())
|
||||||
|
.messageBody(Map.of("currentUserId", currentUserId))
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
|
||||||
List<AdminCreateTemplateResponse> templateResponses = adminCreateTemplateService.getAllTemplates()
|
List<AdminCreateTemplateResponse> templateResponses = adminCreateTemplateService.getAllTemplates()
|
||||||
.stream()
|
.stream()
|
||||||
.map(this::convertToResponse)
|
.map(this::convertToResponse)
|
||||||
.toList();
|
.toList();
|
||||||
|
|
||||||
|
|
||||||
return BaseResponse.builder()
|
return BaseResponse.builder()
|
||||||
.msgId(request.getMsgId())
|
.msgId(request.getMsgId())
|
||||||
.messageCode(MessageCode.SUCCESS.getCode())
|
.messageCode(MessageCode.SUCCESS.getCode())
|
||||||
@@ -152,6 +211,7 @@ public class CreateAdminTemplateHandler implements RequestHandler {
|
|||||||
|
|
||||||
private BaseResponse handleGetById(BaseRequest request, AdminCreateTemplateRequest adminCreateTemplateRequest) {
|
private BaseResponse handleGetById(BaseRequest request, AdminCreateTemplateRequest adminCreateTemplateRequest) {
|
||||||
Long id = adminCreateTemplateRequest.getId();
|
Long id = adminCreateTemplateRequest.getId();
|
||||||
|
Long currentUserId = (Long) httpServletRequest.getAttribute("userId");
|
||||||
|
|
||||||
if (id == null || !adminCreateTemplateService.existById(id)) {
|
if (id == null || !adminCreateTemplateService.existById(id)) {
|
||||||
return BaseResponse.builder()
|
return BaseResponse.builder()
|
||||||
@@ -162,6 +222,17 @@ public class CreateAdminTemplateHandler implements RequestHandler {
|
|||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!adminSectionPermissionService.canRead(currentUserId,
|
||||||
|
AdminSection.STAFF)) {
|
||||||
|
|
||||||
|
return BaseResponse.builder()
|
||||||
|
.msgId(request.getMsgId())
|
||||||
|
.messageCode(MessageCode.PERMISSION_DENIED.getCode())
|
||||||
|
.messageDesc(MessageCode.PERMISSION_DENIED.getDescription())
|
||||||
|
.messageBody(Map.of("currentUserId", currentUserId))
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
|
||||||
AdminCreateTemplate template = adminCreateTemplateService.getTemplateById(adminCreateTemplateRequest.getId());
|
AdminCreateTemplate template = adminCreateTemplateService.getTemplateById(adminCreateTemplateRequest.getId());
|
||||||
|
|
||||||
return BaseResponse.builder()
|
return BaseResponse.builder()
|
||||||
|
|||||||
Reference in New Issue
Block a user