dev #1

Open
backdev wants to merge 47 commits from dev into main
Showing only changes of commit 8da1c6e5b8 - Show all commits
@@ -48,7 +48,8 @@ public class AdminUserHandler implements RequestHandler {
case "set_super_admin" -> handleSetSuperAdmin(request, adminRequest); case "set_super_admin" -> handleSetSuperAdmin(request, adminRequest);
case "toggle_active" -> handleToggleActive(request, adminRequest); case "toggle_active" -> handleToggleActive(request, adminRequest);
case "delete" -> handleDelete(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); case "update_permissions" -> handleUpdatePermissions(request, adminRequest);
default -> handleInvalidAction(request, action); default -> handleInvalidAction(request, action);
}; };
@@ -263,7 +264,7 @@ public class AdminUserHandler implements RequestHandler {
.build(); .build();
} }
private BaseResponse handleGetPermissions(BaseRequest request, AdminUserRequest adminRequest) { private BaseResponse handleGetPermissionsById(BaseRequest request, AdminUserRequest adminRequest) {
try { try {
Long userId = adminRequest.getAdminId(); Long userId = adminRequest.getAdminId();
AdminUser admin = adminUserService.findById(userId); 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) { private BaseResponse handleUpdatePermissions(BaseRequest request, AdminUserRequest adminRequest) {
try { try {
Long userId = adminRequest.getAdminId(); Long userId = adminRequest.getAdminId();