mirror of
https://github.com/hanzoai/sign.git
synced 2026-10-21 01:21:51 +00:00
The IAM callback at /auth/callback reads IAM's userinfo answer and refuses an address IAM has not verified. An account is found by its linked IAM identity alone (provider hanzo, the IAM subject); an existing account that only shares the address is refused, never merged. A first sign-in makes an account only for an admin of the org the application serves or for someone an organisation invited at that verified address. Every refusal returns to /signin with a sentence saying what to do. Accepting an organisation invitation joins the signed-in person, and only when their verified address is the invited one; opening the link no longer adds whoever holds the address. The local email/password sign-up, sign-in, reset, verify-email and update routes, pages, jobs and mail are gone, as are passkey sign-in, the Google, Microsoft and generic OIDC providers, the per-organisation SSO portal and its account-link flow. Passkeys and two-factor stay for confirming a signature. The e2e suite starts sessions the way a finished IAM sign-in leaves them. Co-authored-by: Hanzo Dev <[email protected]>
45 lines
1.2 KiB
TypeScript
45 lines
1.2 KiB
TypeScript
import { Trans } from '@lingui/react/macro';
|
|
|
|
import { Column, Img, Section, Text } from '../components';
|
|
import { TemplateDocumentImage } from './template-document-image';
|
|
|
|
export interface TemplateDocumentSelfSignedProps {
|
|
documentName: string;
|
|
assetBaseUrl: string;
|
|
}
|
|
|
|
export const TemplateDocumentSelfSigned = ({
|
|
documentName,
|
|
assetBaseUrl,
|
|
}: TemplateDocumentSelfSignedProps) => {
|
|
const getAssetUrl = (path: string) => {
|
|
return new URL(path, assetBaseUrl).toString();
|
|
};
|
|
|
|
return (
|
|
<>
|
|
<TemplateDocumentImage className="mt-6" assetBaseUrl={assetBaseUrl} />
|
|
|
|
<Section className="flex-row items-center justify-center">
|
|
<Section>
|
|
<Column align="center">
|
|
<Text className="text-base font-semibold text-black">
|
|
<Img
|
|
src={getAssetUrl('/static/completed.png')}
|
|
className="-mt-0.5 mr-2 inline h-7 w-7 align-middle"
|
|
/>
|
|
<Trans>Completed</Trans>
|
|
</Text>
|
|
</Column>
|
|
</Section>
|
|
|
|
<Text className="mb-0 mt-6 text-center text-lg font-semibold text-primary">
|
|
<Trans>You have signed “{documentName}”</Trans>
|
|
</Text>
|
|
</Section>
|
|
</>
|
|
);
|
|
};
|
|
|
|
export default TemplateDocumentSelfSigned;
|