From b3be89fb8857af46d66869cbe1320ca8af08ac0f Mon Sep 17 00:00:00 2001 From: George Kalampokis Date: Tue, 29 Sep 2020 12:41:47 +0300 Subject: [PATCH] Allow to invite others with just the email even if they don't have an user --- .../java/eu/eudat/logic/managers/InvitationsManager.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/InvitationsManager.java b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/InvitationsManager.java index 6f0c8ddb8..21d131df3 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/InvitationsManager.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/InvitationsManager.java @@ -36,8 +36,10 @@ public class InvitationsManager { UserInfo principalUser = new UserInfo(); principalUser.setId(principal.getId()); invitation.getUsers().stream().filter(item -> item.getId() == null).forEach(item -> { - UUID id = apiContext.getOperationsContext().getDatabaseRepository().getUserInfoDao().asQueryable().where((builder, root) -> builder.equal(root.get("email"), item.getEmail())).getSingle().getId(); - item.setId(id); + UserInfo existingUser = apiContext.getOperationsContext().getDatabaseRepository().getUserInfoDao().asQueryable().where((builder, root) -> builder.equal(root.get("email"), item.getEmail())).getSingleOrDefault(); + if (existingUser != null) { + item.setId(existingUser.getId()); + } }); List alreadySignedInUsers = invitation.getUsers().stream().filter(item -> item.getId() != null).collect(Collectors.toList()); List alreadySignedInUsersEntities = alreadySignedInUsers.stream().map(UserInfoInvitationModel::toDataModel).collect(Collectors.toList());