@@ -185,6 +185,7 @@ export const InvitationForm = () => {
185185 intendedAuthority : isGuest ? AUTHORITIES . GUEST : AUTHORITIES . INVITER ,
186186 enforceEmailEquality : initialRole . enforceEmailEquality ,
187187 eduIDOnly : initialRole . eduIDOnly ,
188+ requestedAuthnContext : initialRole . requestedAuthnContext ,
188189 roleExpiryDate : deriveExpirationDate ( initialRole . isUserRole ? initialRole . role : initialRole )
189190 } )
190191 setOriginalRoleId ( initialRole . isUserRole ? initialRole . role . id : initialRole . id ) ;
@@ -304,7 +305,7 @@ export const InvitationForm = () => {
304305 const rolesChanged = selectedOptions => {
305306 if ( selectedOptions === null ) {
306307 setSelectedRoles ( [ ] )
307- setInvitation ( { ...invitation , enforceEmailEquality : false , eduIDOnly : false } )
308+ setInvitation ( { ...invitation , enforceEmailEquality : false , eduIDOnly : false , requestedAuthnContext : null } )
308309 } else {
309310 const allowedAuthorities = allowedAuthoritiesForInvitation ( user , selectedOptions ) ;
310311 let intendedAuthority = invitation . intendedAuthority ;
@@ -317,15 +318,20 @@ export const InvitationForm = () => {
317318 const overrideSettingsAllowed = selectedRoles . every ( role => role . overrideSettingsAllowed ) ;
318319 let enforceEmailEquality = invitation . enforceEmailEquality ;
319320 let eduIDOnly = invitation . eduIDOnly ;
321+ let requestedAuthnContext = invitation . requestedAuthnContext ;
320322 if ( ! overrideSettingsAllowed ) {
321323 enforceEmailEquality = newSelectedOptions . some ( role => role . enforceEmailEquality ) || enforceEmailEquality ;
322324 eduIDOnly = newSelectedOptions . some ( role => role . eduIDOnly ) || eduIDOnly ;
325+ const rolesWithRequestedAuthnContext = newSelectedOptions . filter ( role => isEmpty ( role . requestedAuthnContext ) ) ;
326+ requestedAuthnContext = isEmpty ( rolesWithRequestedAuthnContext ) ? requestedAuthnContext :
327+ rolesWithRequestedAuthnContext [ 0 ] . requestedAuthnContext ;
323328 }
324329 setInvitation ( {
325330 ...invitation ,
326331 intendedAuthority : intendedAuthority ,
327332 enforceEmailEquality : enforceEmailEquality ,
328333 eduIDOnly : eduIDOnly ,
334+ requestedAuthnContext : requestedAuthnContext
329335 } )
330336 }
331337 }
@@ -560,6 +566,7 @@ export const InvitationForm = () => {
560566 toolTip = { I18n . t ( "tooltips.requestedAuthnContextTooltip" ) }
561567 placeholder = { I18n . t ( "invitations.requestedAuthnContextPlaceHolder" ) }
562568 clearable = { true }
569+ disabled = { ! overrideSettingsAllowed }
563570 onChange = { requestedAuthnContextChanged }
564571 >
565572 { acrWarning &&
0 commit comments