From c07d618220f43a860602d5fb4985c270d5e2c5d2 Mon Sep 17 00:00:00 2001 From: Massimiliano Assante Date: Mon, 9 May 2022 11:45:09 +0200 Subject: [PATCH] check user --- .../networking/ws/methods/v2/Notifications.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/gcube/portal/social/networking/ws/methods/v2/Notifications.java b/src/main/java/org/gcube/portal/social/networking/ws/methods/v2/Notifications.java index 32b5035..d81ebd2 100644 --- a/src/main/java/org/gcube/portal/social/networking/ws/methods/v2/Notifications.java +++ b/src/main/java/org/gcube/portal/social/networking/ws/methods/v2/Notifications.java @@ -326,7 +326,8 @@ public class Notifications { try { logger.debug("workspace notifications type is " + event.getType()); SocialNetworkingSite site = SocialNetworkingSiteFinder.getSocialNetworkingSiteFromScope(context); - GCubeUser senderUser = UserManagerWSBuilder.getInstance().getUserManager().getUserByUsername(username); + UserManager um = UserManagerWSBuilder.getInstance().getUserManager(); + GCubeUser senderUser = um.getUserByUsername(username); SocialNetworkingUser user = new SocialNetworkingUser(senderUser.getUsername(), senderUser.getEmail(), senderUser.getFullname(), senderUser.getUserAvatarURL()); NotificationsManager nm = new ApplicationNotificationsManager(UserManagerWSBuilder.getInstance().getUserManager(), site, context, user); @@ -334,6 +335,16 @@ public class Notifications { if (! event.idsAsGroup()) { for (int i = 0; i < idsToNotify.length; i++) { String userIdToNotify = idsToNotify[i]; + try { + um.getUserByUsername(userIdToNotify); + } + catch (Exception e) { + status = Status.NOT_ACCEPTABLE; + logger.error("Username not found", e); + responseBean.setSuccess(false); + responseBean.setMessage("Username not found " + userIdToNotify); + return Response.status(status).entity(responseBean).build(); + } deliveryResult = notifyWorkspaceEvent(event, nm, userIdToNotify); } } else { //the ids are contexts