add entity and controller for templates admin create

This commit is contained in:
2026-05-22 13:39:13 +07:00
parent a6a6c40b92
commit 4b281dccbd
@@ -1,6 +1,7 @@
package ru.soune.nocopy.adminpanel.handler; package ru.soune.nocopy.adminpanel.handler;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import jakarta.servlet.http.HttpServletRequest;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@@ -36,15 +37,28 @@ public class AdminUserHandler implements RequestHandler {
private final AdminSectionPermissionService permissionService; private final AdminSectionPermissionService permissionService;
private final HttpServletRequest httpServletRequest;
private final AdminSectionPermissionService adminSectionPermissionService;
@Override @Override
public BaseResponse handle(BaseRequest request) throws Exception { public BaseResponse handle(BaseRequest request) throws Exception {
AdminUserRequest adminRequest = objectMapper.convertValue(request.getMessageBody(), AdminUserRequest.class); AdminUserRequest adminRequest = objectMapper.convertValue(request.getMessageBody(), AdminUserRequest.class);
String action = adminRequest.getAction(); String action = adminRequest.getAction();
Long currentUserId = (Long) httpServletRequest.getAttribute("userId");
if (currentUserId == null) {
return BaseResponse.builder()
.msgId(request.getMsgId())
.messageCode(MessageCode.INVALID_CREDENTIALS.getCode())
.messageDesc(MessageCode.INVALID_CREDENTIALS.getDescription())
.build();
}
return switch (action) { return switch (action) {
case "login" -> handleLogin(request, adminRequest); case "login" -> handleLogin(request, adminRequest);
case "create" -> handleCreate(request, adminRequest); case "create" -> handleCreate(request, adminRequest);
case "get_all" -> handleGetAll(request); case "get_all" -> handleGetAll(request, adminRequest);
case "get_by_id" -> handleGetById(request, adminRequest); case "get_by_id" -> handleGetById(request, adminRequest);
case "update" -> handleUpdate(request, adminRequest); case "update" -> handleUpdate(request, adminRequest);
case "set_super_admin" -> handleSetSuperAdmin(request, adminRequest); case "set_super_admin" -> handleSetSuperAdmin(request, adminRequest);
@@ -107,6 +121,17 @@ public class AdminUserHandler implements RequestHandler {
private BaseResponse handleCreate(BaseRequest request, AdminUserRequest adminRequest) { private BaseResponse handleCreate(BaseRequest request, AdminUserRequest adminRequest) {
try { try {
Long currentUserId = (Long) httpServletRequest.getAttribute("userId");
if (!adminSectionPermissionService.canWrite(currentUserId,
AdminSection.USERS)) {
return BaseResponse.builder()
.msgId(request.getMsgId())
.messageCode(MessageCode.PERMISSION_DENIED.getCode())
.messageDesc("You can't create profile")
.build();
}
boolean superAdmin = adminRequest.getIsSuperAdmin() != null && adminRequest.getIsSuperAdmin(); boolean superAdmin = adminRequest.getIsSuperAdmin() != null && adminRequest.getIsSuperAdmin();
boolean changePassword = adminRequest.getChangePassword() != null ? adminRequest.getChangePassword(): boolean changePassword = adminRequest.getChangePassword() != null ? adminRequest.getChangePassword():
!superAdmin; !superAdmin;
@@ -160,7 +185,18 @@ public class AdminUserHandler implements RequestHandler {
} }
} }
private BaseResponse handleGetAll(BaseRequest request) { private BaseResponse handleGetAll(BaseRequest request, AdminUserRequest adminRequest) {
Long currentUserId = (Long) httpServletRequest.getAttribute("userId");
if (!adminSectionPermissionService.canRead(currentUserId,
AdminSection.USERS)) {
return BaseResponse.builder()
.msgId(request.getMsgId())
.messageCode(MessageCode.PERMISSION_DENIED.getCode())
.messageDesc("You can't update profile")
.build();
}
List<AdminUserResponse> admins = adminUserService.findAll().stream() List<AdminUserResponse> admins = adminUserService.findAll().stream()
.map(this::convertToResponse) .map(this::convertToResponse)
.collect(Collectors.toList()); .collect(Collectors.toList());
@@ -176,6 +212,19 @@ public class AdminUserHandler implements RequestHandler {
private BaseResponse handleGetById(BaseRequest request, AdminUserRequest adminRequest) { private BaseResponse handleGetById(BaseRequest request, AdminUserRequest adminRequest) {
try { try {
AdminUser admin = adminUserService.findById(adminRequest.getAdminId()); AdminUser admin = adminUserService.findById(adminRequest.getAdminId());
Long currentUserId = (Long) httpServletRequest.getAttribute("userId");
if (!currentUserId.equals(adminRequest.getAdminId())) {
if (!adminSectionPermissionService.canRead(currentUserId,
AdminSection.USERS)) {
return BaseResponse.builder()
.msgId(request.getMsgId())
.messageCode(MessageCode.PERMISSION_DENIED.getCode())
.messageDesc("You can't update profile")
.build();
}
}
return BaseResponse.builder() return BaseResponse.builder()
.msgId(request.getMsgId()) .msgId(request.getMsgId())
.messageCode(MessageCode.SUCCESS.getCode()) .messageCode(MessageCode.SUCCESS.getCode())
@@ -193,6 +242,19 @@ public class AdminUserHandler implements RequestHandler {
private BaseResponse handleUpdate(BaseRequest request, AdminUserRequest adminRequest) { private BaseResponse handleUpdate(BaseRequest request, AdminUserRequest adminRequest) {
try { try {
Long currentUserId = (Long) httpServletRequest.getAttribute("userId");
if (!currentUserId.equals(adminRequest.getAdminId())) {
if (!adminSectionPermissionService.canWrite(currentUserId,
AdminSection.USERS)) {
return BaseResponse.builder()
.msgId(request.getMsgId())
.messageCode(MessageCode.PERMISSION_DENIED.getCode())
.messageDesc("You can't update profile")
.build();
}
}
AdminUser admin = adminUserService.update( AdminUser admin = adminUserService.update(
adminRequest.getAdminId(), adminRequest.getAdminId(),
adminRequest.getFullName(), adminRequest.getFullName(),
@@ -229,6 +291,17 @@ public class AdminUserHandler implements RequestHandler {
private BaseResponse handleSetSuperAdmin(BaseRequest request, AdminUserRequest adminRequest) { private BaseResponse handleSetSuperAdmin(BaseRequest request, AdminUserRequest adminRequest) {
try { try {
Long currentUserId = (Long) httpServletRequest.getAttribute("userId");
if (!adminSectionPermissionService.canWrite(currentUserId,
AdminSection.USERS)) {
return BaseResponse.builder()
.msgId(request.getMsgId())
.messageCode(MessageCode.PERMISSION_DENIED.getCode())
.messageDesc("You can't create profile")
.build();
}
AdminUser admin = adminUserService.setSuperAdmin(adminRequest.getAdminId(), adminRequest.getIsSuperAdmin()); AdminUser admin = adminUserService.setSuperAdmin(adminRequest.getAdminId(), adminRequest.getIsSuperAdmin());
Map<AdminSection, Integer> sectionPermissons = new HashMap<>(); Map<AdminSection, Integer> sectionPermissons = new HashMap<>();
@@ -266,6 +339,19 @@ public class AdminUserHandler implements RequestHandler {
private BaseResponse handleToggleActive(BaseRequest request, AdminUserRequest adminRequest) { private BaseResponse handleToggleActive(BaseRequest request, AdminUserRequest adminRequest) {
try { try {
Long currentUserId = (Long) httpServletRequest.getAttribute("userId");
if (!currentUserId.equals(adminRequest.getAdminId())) {
if (!adminSectionPermissionService.canWrite(currentUserId,
AdminSection.USERS)) {
return BaseResponse.builder()
.msgId(request.getMsgId())
.messageCode(MessageCode.PERMISSION_DENIED.getCode())
.messageDesc("You can't update profile")
.build();
}
}
adminUserService.toggleActive(adminRequest.getAdminId(), adminRequest.getIsActive()); adminUserService.toggleActive(adminRequest.getAdminId(), adminRequest.getIsActive());
AdminUser admin = adminUserService.findById(adminRequest.getAdminId()); AdminUser admin = adminUserService.findById(adminRequest.getAdminId());
@@ -286,6 +372,17 @@ public class AdminUserHandler implements RequestHandler {
private BaseResponse handleDelete(BaseRequest request, AdminUserRequest adminRequest) { private BaseResponse handleDelete(BaseRequest request, AdminUserRequest adminRequest) {
try { try {
Long currentUserId = (Long) httpServletRequest.getAttribute("userId");
if (!adminSectionPermissionService.canWrite(currentUserId,
AdminSection.USERS)) {
return BaseResponse.builder()
.msgId(request.getMsgId())
.messageCode(MessageCode.PERMISSION_DENIED.getCode())
.messageDesc("You can't create profile")
.build();
}
adminUserService.delete(adminRequest.getAdminId()); adminUserService.delete(adminRequest.getAdminId());
return BaseResponse.builder() return BaseResponse.builder()
@@ -402,6 +499,17 @@ public class AdminUserHandler implements RequestHandler {
private BaseResponse handleUpdatePermissions(BaseRequest request, AdminUserRequest adminRequest) { private BaseResponse handleUpdatePermissions(BaseRequest request, AdminUserRequest adminRequest) {
try { try {
Long currentUserId = (Long) httpServletRequest.getAttribute("userId");
if (!adminSectionPermissionService.canWrite(currentUserId,
AdminSection.USERS)) {
return BaseResponse.builder()
.msgId(request.getMsgId())
.messageCode(MessageCode.PERMISSION_DENIED.getCode())
.messageDesc("You can't create profile")
.build();
}
Long userId = adminRequest.getAdminId(); Long userId = adminRequest.getAdminId();
Map<String, Integer> permissionsMap = adminRequest.getPermissions(); Map<String, Integer> permissionsMap = adminRequest.getPermissions();