add section admin permission

This commit is contained in:
2026-05-07 16:07:02 +07:00
parent 200d070fa5
commit 8da1c6e5b8
@@ -48,7 +48,8 @@ public class AdminUserHandler implements RequestHandler {
case "set_super_admin" -> handleSetSuperAdmin(request, adminRequest);
case "toggle_active" -> handleToggleActive(request, adminRequest);
case "delete" -> handleDelete(request, adminRequest);
case "get_permissions" -> handleGetPermissions(request, adminRequest);
case "get_permissions_by_id" -> handleGetPermissionsById(request, adminRequest);
case "get_permissions_by_token" -> handleGetPermissionsByToken(request);
case "update_permissions" -> handleUpdatePermissions(request, adminRequest);
default -> handleInvalidAction(request, action);
};
@@ -263,7 +264,7 @@ public class AdminUserHandler implements RequestHandler {
.build();
}
private BaseResponse handleGetPermissions(BaseRequest request, AdminUserRequest adminRequest) {
private BaseResponse handleGetPermissionsById(BaseRequest request, AdminUserRequest adminRequest) {
try {
Long userId = adminRequest.getAdminId();
AdminUser admin = adminUserService.findById(userId);
@@ -299,6 +300,50 @@ public class AdminUserHandler implements RequestHandler {
}
}
private BaseResponse handleGetPermissionsByToken(BaseRequest request) {
try {
String token = request.getToken();
if (token == null || token.isEmpty()) {
return BaseResponse.builder()
.msgId(request.getMsgId())
.messageCode(MessageCode.INVALID_CREDENTIALS.getCode())
.messageDesc("Token is required")
.build();
}
String email = jwtUtil.extractEmail(token);
AdminUser admin = adminUserService.findByEmail(email);
Map<AdminSection, Integer> sectionPermissions = permissionService.getAllPermissions(admin.getId());
Map<String, Integer> permissionsMap = new HashMap<>();
sectionPermissions.forEach((section, value) ->
permissionsMap.put(section.name().toLowerCase(), value));
AdminUserResponse response = AdminUserResponse.builder()
.id(admin.getId())
.fullName(admin.getFullName())
.email(admin.getEmail())
.isActive(admin.getIsActive())
.isSuperAdmin(AdminPermission.isSuperAdmin(admin.getPermissions()))
.createdAt(admin.getCreatedAt().toString())
.permissions(permissionsMap)
.build();
return BaseResponse.builder()
.msgId(request.getMsgId())
.messageCode(MessageCode.SUCCESS.getCode())
.messageDesc(MessageCode.SUCCESS.getDescription())
.messageBody(response)
.build();
} catch (AdminUserNotFoundException e) {
return BaseResponse.builder()
.msgId(request.getMsgId())
.messageCode(MessageCode.ADMIN_NOT_FOUND.getCode())
.messageDesc(MessageCode.ADMIN_NOT_FOUND.getDescription())
.build();
}
}
private BaseResponse handleUpdatePermissions(BaseRequest request, AdminUserRequest adminRequest) {
try {
Long userId = adminRequest.getAdminId();