Whitelist admins and new users by email
This commit is contained in:
parent
b4f979ad80
commit
a334decd1c
14
common/access.ts
Normal file
14
common/access.ts
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
export function isWhitelisted(email?: string) {
|
||||||
|
return true
|
||||||
|
// e.g. return email.endsWith('@theoremone.co') || isAdmin(email)
|
||||||
|
}
|
||||||
|
|
||||||
|
export function isAdmin(email: string) {
|
||||||
|
const ADMINS = [
|
||||||
|
'akrolsmir@gmail.com', // Austin
|
||||||
|
'jahooma@gmail.com', // James
|
||||||
|
'taowell@gmail.com', // Stephen
|
||||||
|
'manticmarkets@gmail.com', // Manifold
|
||||||
|
]
|
||||||
|
return ADMINS.includes(email)
|
||||||
|
}
|
|
@ -14,6 +14,7 @@ import {
|
||||||
cleanUsername,
|
cleanUsername,
|
||||||
} from '../../common/util/clean-username'
|
} from '../../common/util/clean-username'
|
||||||
import { sendWelcomeEmail } from './emails'
|
import { sendWelcomeEmail } from './emails'
|
||||||
|
import { isWhitelisted } from '../../common/access'
|
||||||
|
|
||||||
export const createUser = functions
|
export const createUser = functions
|
||||||
.runWith({ minInstances: 1 })
|
.runWith({ minInstances: 1 })
|
||||||
|
@ -32,6 +33,9 @@ export const createUser = functions
|
||||||
const fbUser = await admin.auth().getUser(userId)
|
const fbUser = await admin.auth().getUser(userId)
|
||||||
|
|
||||||
const email = fbUser.email
|
const email = fbUser.email
|
||||||
|
if (!isWhitelisted(email)) {
|
||||||
|
return { status: 'error', message: `${email} is not whitelisted` }
|
||||||
|
}
|
||||||
const emailName = email?.replace(/@.*$/, '')
|
const emailName = email?.replace(/@.*$/, '')
|
||||||
|
|
||||||
const rawName = fbUser.displayName || emailName || 'User' + randomString(4)
|
const rawName = fbUser.displayName || emailName || 'User' + randomString(4)
|
||||||
|
|
|
@ -1,12 +1,8 @@
|
||||||
import { useUser } from './use-user'
|
import { isAdmin } from '../../common/access'
|
||||||
|
import { usePrivateUser, useUser } from './use-user'
|
||||||
|
|
||||||
export const useAdmin = () => {
|
export const useAdmin = () => {
|
||||||
const user = useUser()
|
const user = useUser()
|
||||||
const adminIds = [
|
const privateUser = usePrivateUser(user?.id)
|
||||||
'igi2zGXsfxYPgB0DJTXVJVmwCOr2', // Austin
|
return isAdmin(privateUser?.email || '')
|
||||||
'5LZ4LgYuySdL1huCWe7bti02ghx2', // James
|
|
||||||
'tlmGNz9kjXc2EteizMORes4qvWl2', // Stephen
|
|
||||||
'IPTOzEqrpkWmEzh6hwvAyY9PqFb2', // Manifold
|
|
||||||
]
|
|
||||||
return adminIds.includes(user?.id || '')
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user