add section admin permission
This commit is contained in:
@@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user