* feat: API endpoints for email signin * fix: After testing * Initial signin flow working * move shared middleware * feat: Add guest signin toggle, obey on endpoints * feat: Basic email signin when enabled * Improve guest signin email Disable double signin with JWT * fix: Simple rate limiting * create placeholder users in db * fix: Give invited users default avatar add invited users to people settings * test * add transaction * tmp: test CI * derp * md5 * urgh * again * test: pass * test * fix: Remove usage of data values * guest signin page * Visually separator 'Invited' from other people tabs * fix: Edge case attempting SSO signin for guest email account * fix: Correctly set email auth method to cookie * Improve rate limit error display * lint: cleanup / comments * Improve invalid token error display * style tweaks * pass guest value to subdomain * Restore copy link option * feat: Allow invite revoke from people management * fix: Incorrect users email schema does not allow for user deletion * lint * fix: avatarUrl for deleted user failure * change default to off for guest invites * fix: Changing security settings wipes subdomain * fix: user delete permissioning * test: Add user.invite specs
52 lines
1.3 KiB
JavaScript
52 lines
1.3 KiB
JavaScript
// @flow
|
||
import * as React from 'react';
|
||
import EmailTemplate from './components/EmailLayout';
|
||
import Body from './components/Body';
|
||
import Button from './components/Button';
|
||
import Heading from './components/Heading';
|
||
import Header from './components/Header';
|
||
import Footer from './components/Footer';
|
||
import EmptySpace from './components/EmptySpace';
|
||
|
||
export type Props = {
|
||
token: string,
|
||
teamUrl: string,
|
||
};
|
||
|
||
export const signinEmailText = ({ token, teamUrl }: Props) => `
|
||
Use the link below to signin to Outline:
|
||
|
||
${process.env.URL}/auth/email.callback?token=${token}
|
||
|
||
If your magic link expired you can request a new one from your team’s
|
||
signin page at: ${teamUrl}
|
||
`;
|
||
|
||
export const SigninEmail = ({ token, teamUrl }: Props) => {
|
||
return (
|
||
<EmailTemplate>
|
||
<Header />
|
||
|
||
<Body>
|
||
<Heading>Magic signin link</Heading>
|
||
<p>Click the button below to signin to Outline.</p>
|
||
<EmptySpace height={10} />
|
||
<p>
|
||
<Button
|
||
href={`${process.env.URL}/auth/email.callback?token=${token}`}
|
||
>
|
||
Sign In
|
||
</Button>
|
||
</p>
|
||
<EmptySpace height={10} />
|
||
<p>
|
||
If your magic link expired you can request a new one from your team’s
|
||
signin page at: <a href={teamUrl}>{teamUrl}</a>
|
||
</p>
|
||
</Body>
|
||
|
||
<Footer />
|
||
</EmailTemplate>
|
||
);
|
||
};
|