Prevent signin without hosted domain
This commit is contained in:
@@ -37,6 +37,11 @@ router.get('google.callback', async ctx => {
|
||||
url: 'https://www.googleapis.com/oauth2/v1/userinfo',
|
||||
});
|
||||
|
||||
if (!profile.data.hd) {
|
||||
ctx.redirect('/?notice=google-hd');
|
||||
return;
|
||||
}
|
||||
|
||||
const teamName = capitalize(profile.data.hd.split('.')[0]);
|
||||
const [team, isFirstUser] = await Team.findOrCreate({
|
||||
where: {
|
||||
|
||||
@@ -10,6 +10,7 @@ import { developers, githubUrl } from '../../shared/utils/routeHelpers';
|
||||
import { color } from '../../shared/styles/constants';
|
||||
|
||||
type Props = {
|
||||
notice?: 'google-hd',
|
||||
lastSignedIn: string,
|
||||
googleSigninEnabled: boolean,
|
||||
slackSigninEnabled: boolean,
|
||||
@@ -31,6 +32,12 @@ function Home(props: Props) {
|
||||
<p>
|
||||
<SigninButtons {...props} />
|
||||
</p>
|
||||
{props.notice === 'google-hd' && (
|
||||
<Notice>
|
||||
Sorry, Google sign in cannot be used with a personal email. Please
|
||||
try signing in with your company Google account.
|
||||
</Notice>
|
||||
)}
|
||||
</Hero>
|
||||
<Features reverse={{ mobile: true, tablet: false, desktop: false }}>
|
||||
<Grid.Unit size={{ desktop: 1 / 3, tablet: 1 / 2 }}>
|
||||
@@ -107,6 +114,13 @@ function Home(props: Props) {
|
||||
);
|
||||
}
|
||||
|
||||
const Notice = styled.p`
|
||||
background: #ffd95c;
|
||||
color: hsla(46, 100%, 20%, 1);
|
||||
padding: 10px;
|
||||
border-radius: 4px;
|
||||
`;
|
||||
|
||||
const Screenshot = styled.img`
|
||||
width: 100%;
|
||||
box-shadow: 0 0 80px 0 rgba(124, 124, 124, 0.5),
|
||||
|
||||
@@ -71,6 +71,7 @@ router.get('/', async ctx => {
|
||||
await renderpage(
|
||||
ctx,
|
||||
<Home
|
||||
notice={ctx.request.query.notice}
|
||||
lastSignedIn={lastSignedIn}
|
||||
googleSigninEnabled={!!process.env.GOOGLE_CLIENT_ID}
|
||||
slackSigninEnabled={!!process.env.SLACK_KEY}
|
||||
|
||||
Reference in New Issue
Block a user