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.entity.AdminSection;
|
||||
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.EmailAlreadyExistsException;
|
||||
import ru.soune.nocopy.adminpanel.permission.AdminPermission;
|
||||
@@ -110,9 +111,41 @@ public class AdminUserHandler implements RequestHandler {
|
||||
adminRequest.getFullName(),
|
||||
adminRequest.getEmail(),
|
||||
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()
|
||||
.msgId(request.getMsgId())
|
||||
.messageCode(MessageCode.SUCCESS.getCode())
|
||||
@@ -193,6 +226,24 @@ public class AdminUserHandler implements RequestHandler {
|
||||
try {
|
||||
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()
|
||||
.msgId(request.getMsgId())
|
||||
.messageCode(MessageCode.SUCCESS.getCode())
|
||||
|
||||
@@ -50,6 +50,7 @@ public class AdminSectionPermissionService {
|
||||
public void setAllPermissions(Long userId, Map<AdminSection, Integer> permissions) {
|
||||
AdminSectionPermission permission = getOrCreate(userId);
|
||||
permissions.forEach((section, value) -> setSectionValue(permission, section, value));
|
||||
|
||||
repository.save(permission);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user