dev #1

Open
backdev wants to merge 47 commits from dev into main
3 changed files with 68 additions and 2 deletions
Showing only changes of commit 01915e1a08 - Show all commits
@@ -0,0 +1,14 @@
package ru.soune.nocopy.adminpanel.entity;
import lombok.Getter;
@Getter
public enum PermissionType {
READ(0b01), NONE(0b00), WRITE_AND_READ(0b11);
private final Integer value;
PermissionType(Integer value) {
this.value = value;
}
}
@@ -7,6 +7,7 @@ import org.springframework.stereotype.Component;
import ru.soune.nocopy.adminpanel.dto.*; import ru.soune.nocopy.adminpanel.dto.*;
import ru.soune.nocopy.adminpanel.entity.AdminSection; import ru.soune.nocopy.adminpanel.entity.AdminSection;
import ru.soune.nocopy.adminpanel.entity.AdminUser; import ru.soune.nocopy.adminpanel.entity.AdminUser;
import ru.soune.nocopy.adminpanel.entity.PermissionType;
import ru.soune.nocopy.adminpanel.exceptions.AdminUserNotFoundException; import ru.soune.nocopy.adminpanel.exceptions.AdminUserNotFoundException;
import ru.soune.nocopy.adminpanel.exceptions.EmailAlreadyExistsException; import ru.soune.nocopy.adminpanel.exceptions.EmailAlreadyExistsException;
import ru.soune.nocopy.adminpanel.permission.AdminPermission; import ru.soune.nocopy.adminpanel.permission.AdminPermission;
@@ -110,8 +111,40 @@ public class AdminUserHandler implements RequestHandler {
adminRequest.getFullName(), adminRequest.getFullName(),
adminRequest.getEmail(), adminRequest.getEmail(),
adminRequest.getPassword(), adminRequest.getPassword(),
superAdmin superAdmin);
); Map<AdminSection, Integer> sectionPermissons = new HashMap<>();
if (superAdmin) {
sectionPermissons.put(AdminSection.DASH, PermissionType.WRITE_AND_READ.getValue());
sectionPermissons.put(AdminSection.USERS, PermissionType.WRITE_AND_READ.getValue());
sectionPermissons.put(AdminSection.STAFF, PermissionType.WRITE_AND_READ.getValue());
sectionPermissons.put(AdminSection.SUBSCRIPTIONS, PermissionType.WRITE_AND_READ.getValue());
sectionPermissons.put(AdminSection.TARIFFS, PermissionType.WRITE_AND_READ.getValue());
sectionPermissons.put(AdminSection.CONTENT_MODERATION, PermissionType.WRITE_AND_READ.getValue());
sectionPermissons.put(AdminSection.COMPLAINTS, PermissionType.WRITE_AND_READ.getValue());
sectionPermissons.put(AdminSection.CLAIMS, PermissionType.WRITE_AND_READ.getValue());
sectionPermissons.put(AdminSection.MAILINGS, PermissionType.WRITE_AND_READ.getValue());
sectionPermissons.put(AdminSection.API, PermissionType.WRITE_AND_READ.getValue());
sectionPermissons.put(AdminSection.MONEY, PermissionType.WRITE_AND_READ.getValue());
sectionPermissons.put(AdminSection.KYC, PermissionType.WRITE_AND_READ.getValue());
sectionPermissons.put(AdminSection.AGREEMENTS, PermissionType.WRITE_AND_READ.getValue());
} else {
sectionPermissons.put(AdminSection.DASH, PermissionType.READ.getValue());
sectionPermissons.put(AdminSection.USERS, PermissionType.READ.getValue());
sectionPermissons.put(AdminSection.STAFF, PermissionType.READ.getValue());
sectionPermissons.put(AdminSection.SUBSCRIPTIONS, PermissionType.READ.getValue());
sectionPermissons.put(AdminSection.TARIFFS, PermissionType.READ.getValue());
sectionPermissons.put(AdminSection.CONTENT_MODERATION, PermissionType.READ.getValue());
sectionPermissons.put(AdminSection.COMPLAINTS, PermissionType.READ.getValue());
sectionPermissons.put(AdminSection.CLAIMS, PermissionType.READ.getValue());
sectionPermissons.put(AdminSection.MAILINGS, PermissionType.READ.getValue());
sectionPermissons.put(AdminSection.API, PermissionType.READ.getValue());
sectionPermissons.put(AdminSection.MONEY, PermissionType.READ.getValue());
sectionPermissons.put(AdminSection.KYC, PermissionType.READ.getValue());
sectionPermissons.put(AdminSection.AGREEMENTS, PermissionType.READ.getValue());
}
permissionService.setAllPermissions(admin.getId(), sectionPermissons);
return BaseResponse.builder() return BaseResponse.builder()
.msgId(request.getMsgId()) .msgId(request.getMsgId())
@@ -193,6 +226,24 @@ public class AdminUserHandler implements RequestHandler {
try { try {
AdminUser admin = adminUserService.setSuperAdmin(adminRequest.getAdminId(), adminRequest.getIsSuperAdmin()); AdminUser admin = adminUserService.setSuperAdmin(adminRequest.getAdminId(), adminRequest.getIsSuperAdmin());
Map<AdminSection, Integer> sectionPermissons = new HashMap<>();
sectionPermissons.put(AdminSection.DASH, PermissionType.WRITE_AND_READ.getValue());
sectionPermissons.put(AdminSection.USERS, PermissionType.WRITE_AND_READ.getValue());
sectionPermissons.put(AdminSection.STAFF, PermissionType.WRITE_AND_READ.getValue());
sectionPermissons.put(AdminSection.SUBSCRIPTIONS, PermissionType.WRITE_AND_READ.getValue());
sectionPermissons.put(AdminSection.TARIFFS, PermissionType.WRITE_AND_READ.getValue());
sectionPermissons.put(AdminSection.CONTENT_MODERATION, PermissionType.WRITE_AND_READ.getValue());
sectionPermissons.put(AdminSection.COMPLAINTS, PermissionType.WRITE_AND_READ.getValue());
sectionPermissons.put(AdminSection.CLAIMS, PermissionType.WRITE_AND_READ.getValue());
sectionPermissons.put(AdminSection.MAILINGS, PermissionType.WRITE_AND_READ.getValue());
sectionPermissons.put(AdminSection.API, PermissionType.WRITE_AND_READ.getValue());
sectionPermissons.put(AdminSection.MONEY, PermissionType.WRITE_AND_READ.getValue());
sectionPermissons.put(AdminSection.KYC, PermissionType.WRITE_AND_READ.getValue());
sectionPermissons.put(AdminSection.AGREEMENTS, PermissionType.WRITE_AND_READ.getValue());
permissionService.setAllPermissions(admin.getId(), sectionPermissons);
return BaseResponse.builder() return BaseResponse.builder()
.msgId(request.getMsgId()) .msgId(request.getMsgId())
.messageCode(MessageCode.SUCCESS.getCode()) .messageCode(MessageCode.SUCCESS.getCode())
@@ -50,6 +50,7 @@ public class AdminSectionPermissionService {
public void setAllPermissions(Long userId, Map<AdminSection, Integer> permissions) { public void setAllPermissions(Long userId, Map<AdminSection, Integer> permissions) {
AdminSectionPermission permission = getOrCreate(userId); AdminSectionPermission permission = getOrCreate(userId);
permissions.forEach((section, value) -> setSectionValue(permission, section, value)); permissions.forEach((section, value) -> setSectionValue(permission, section, value));
repository.save(permission); repository.save(permission);
} }