@@ -40,6 +40,7 @@ public InvitationOperations(InvitationResource invitationResource) {
4040 public ResponseEntity <InvitationResponse > sendInvitation (InvitationRequest invitationRequest ,
4141 User user ,
4242 RemoteUser remoteUser ) {
43+ invitationRequest .verify ();
4344 Authority intendedAuthority = invitationRequest .getIntendedAuthority ();
4445 if (!List .of (Authority .INSTITUTION_ADMIN , Authority .SUPER_USER ).contains (intendedAuthority )
4546 && CollectionUtils .isEmpty (invitationRequest .getRoleIdentifiers ())) {
@@ -65,19 +66,26 @@ public ResponseEntity<InvitationResponse> sendInvitation(InvitationRequest invit
6566 invitationRequest .setRoleExpiryDate (Instant .now ().plus (defaultExpiryDays , ChronoUnit .DAYS ));
6667 }
6768 }
68-
69- List <Invitation > invitations = invitationRequest .getInvites ().stream ()
70- .filter (email -> {
71- boolean valid = emailFormatValidator .isValid (email );
69+ List <Invite > invites = invitationRequest .getInvitations ();
70+ if (invites == null ) {
71+ invites = new ArrayList <>();
72+ }
73+ List <String > requestInvites = invitationRequest .getInvites ();
74+ if (requestInvites != null ) {
75+ invites .addAll (requestInvites .stream ().map (invite -> new Invite (invite , null )).toList ());
76+ }
77+ List <Invitation > invitations = invites .stream ()
78+ .filter (invite -> {
79+ boolean valid = emailFormatValidator .isValid (invite .getEmail ());
7280 if (!valid ) {
73- LOG .debug ("Not sending invalid email for invitation: " + email );
81+ LOG .debug ("Not sending invalid email for invitation: " + invite . getEmail () );
7482 }
7583 return valid ;
7684 })
77- .map (invitee -> new Invitation (
85+ .map (invite -> new Invitation (
7886 intendedAuthority ,
7987 HashGenerator .generateRandomHash (),
80- invitee ,
88+ invite . getEmail () ,
8189 invitationRequest .isEnforceEmailEquality (),
8290 invitationRequest .isEduIDOnly (),
8391 invitationRequest .isGuestRoleIncluded (),
@@ -88,8 +96,9 @@ public ResponseEntity<InvitationResponse> sendInvitation(InvitationRequest invit
8896 invitationRequest .getRoleExpiryDate (),
8997 requestedRoles .stream ()
9098 .map (InvitationRole ::new )
91- .collect (toSet ())))
92- .toList ();
99+ .collect (toSet ()),
100+ invite .getInternalPlaceholderIdentifier ())
101+ ).toList ();
93102 if (user == null ) {
94103 invitations .forEach (invitation -> invitation .setRemoteApiUser (remoteUser .getName ()));
95104 }
0 commit comments