diff --git a/client/src/common/validators.ts b/client/src/common/validators.ts index 9f0a96deb94..e6fb88dbe67 100644 --- a/client/src/common/validators.ts +++ b/client/src/common/validators.ts @@ -131,17 +131,14 @@ export const claimAndBootstrapLinkValidator: IValidator = async function (value: if (value.length === 0) { return { validity: Validity.Intermediate }; } - // TODO: REPLACE WHEN LIBPARSEC HANDLES PKI LINKS - if (value.includes('a=pki_enrollment')) { - return { validity: Validity.Valid }; - } const result = await parseParsecAddr(value); if ( result.ok && (result.value.tag === ParsedParsecAddrTag.OrganizationBootstrap || result.value.tag === ParsedParsecAddrTag.InvitationUser || - result.value.tag === ParsedParsecAddrTag.InvitationDevice) + result.value.tag === ParsedParsecAddrTag.InvitationDevice || + result.value.tag === ParsedParsecAddrTag.PkiEnrollment) ) { return { validity: Validity.Valid }; } @@ -245,9 +242,9 @@ export const pkiLinkValidator: IValidator = async function (value: string) { if (value.length === 0) { return { validity: Validity.Intermediate }; } - // TODO: REPLACE WHEN LIBPARSEC HANDLES PKI LINKS - if (value.includes('a=pki_enrollment')) { - return { validity: Validity.Valid }; + const result = await parseParsecAddr(value); + if (result.ok) { + return result.value.tag === ParsedParsecAddrTag.PkiEnrollment ? { validity: Validity.Valid } : { validity: Validity.Invalid }; } - return { validity: Validity.Invalid }; + return { validity: Validity.Invalid, reason: '' }; }; diff --git a/client/src/components/devices/ChooseAuthentication.vue b/client/src/components/devices/ChooseAuthentication.vue index 1864172d359..bd42f44abd1 100644 --- a/client/src/components/devices/ChooseAuthentication.vue +++ b/client/src/components/devices/ChooseAuthentication.vue @@ -48,7 +48,6 @@
- {{ request.humanHandle.label }} - + + {{ (request as PkiEnrollmentListItemValid).payload.humanHandle.label }} + +
- {{ $msTranslate(formatTimeSince(request.createdOn, '--', 'short')) }} + {{ $msTranslate(formatTimeSince(request.submittedOn, '--', 'short')) }} -
+
@@ -48,10 +49,10 @@
- {{ request.humanHandle.email }} + {{ (request as PkiEnrollmentListItemValid).payload.humanHandle.email }}
@@ -61,20 +62,17 @@ v-if="isLargeDisplay" > - {{ $msTranslate(formatTimeSince(request.createdOn, '--', 'short')) }} + {{ $msTranslate(formatTimeSince(request.submittedOn, '--', 'short')) }}
-
+
import UserAvatarName from '@/components/users/UserAvatarName.vue'; -import { JoinRequestValidity, OrganizationJoinRequest } from '@/parsec'; +import { PkiEnrollmentListItem, PkiEnrollmentListItemTag, PkiEnrollmentListItemValid } from '@/parsec'; import { IonButton, IonIcon, IonItem, IonText } from '@ionic/vue'; -import { checkmarkCircle, closeCircle, warning } from 'ionicons/icons'; +import { checkmarkCircle, closeCircle } from 'ionicons/icons'; import { attachMouseOverTooltip, formatTimeSince, useWindowSize } from 'megashark-lib'; import { computed, onMounted, useTemplateRef } from 'vue'; @@ -122,21 +120,19 @@ const { isSmallDisplay, isLargeDisplay } = useWindowSize(); const rejectButtonRef = useTemplateRef>('rejectButton'); const props = defineProps<{ - request: OrganizationJoinRequest; + request: PkiEnrollmentListItem; }>(); defineEmits<{ - (e: 'acceptClick', invitation: OrganizationJoinRequest): void; - (e: 'rejectClick', invitation: OrganizationJoinRequest): void; + (e: 'acceptClick', invitation: PkiEnrollmentListItem): void; + (e: 'rejectClick', invitation: PkiEnrollmentListItem): void; }>(); const validity = computed(() => { - if (props.request.validity === JoinRequestValidity.Valid) { + if (props.request.tag === PkiEnrollmentListItemTag.Valid) { return { text: 'InvitationsPage.pkiRequests.certificate.valid', icon: checkmarkCircle }; - } else if (props.request.validity === JoinRequestValidity.Invalid) { - return { text: 'InvitationsPage.pkiRequests.certificate.invalid', icon: closeCircle }; } else { - return { text: 'InvitationsPage.pkiRequests.certificate.unknown', icon: warning }; + return { text: 'InvitationsPage.pkiRequests.certificate.invalid', icon: closeCircle }; } }); diff --git a/client/src/components/organizations/OrganizationPkiRequest.vue b/client/src/components/organizations/OrganizationPkiRequest.vue index 85880bf0180..6da78d15cb8 100644 --- a/client/src/components/organizations/OrganizationPkiRequest.vue +++ b/client/src/components/organizations/OrganizationPkiRequest.vue @@ -3,29 +3,39 @@