Skip to content

Commit bd7508f

Browse files
Merge pull request #15 from x-team/develop
14 feb 22 merge to main
2 parents b18bf32 + 9e6a1b6 commit bd7508f

File tree

1 file changed

+5
-26
lines changed

1 file changed

+5
-26
lines changed

src/plugins/firebasePlugin.ts

+5-26
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import Boom from '@hapi/boom';
22
import type { PluginSpecificConfiguration, Server } from '@hapi/hapi';
33
import admin from 'firebase-admin';
4-
import { DecodedIdToken } from 'firebase-admin/lib/auth/token-verifier';
4+
import type { DecodedIdToken } from 'firebase-admin/lib/auth/token-verifier';
55

66
import { getConfig } from '../config';
77
import { USER_ROLE_LEVEL } from '../consts/model';
@@ -13,24 +13,6 @@ const firebaseApp = admin.initializeApp({
1313
credential: admin.credential.cert(getConfig('GOOGLE_APPLICATION_CREDENTIALS')),
1414
});
1515

16-
const setupInitialFirestoreUserData = async (firebaseUserUid: string) => {
17-
const firestore = firebaseApp.firestore();
18-
19-
await firestore
20-
.collection('users')
21-
.doc(firebaseUserUid)
22-
.set(
23-
{
24-
gamesHq: {
25-
capabilities: [],
26-
},
27-
},
28-
{
29-
merge: true,
30-
}
31-
);
32-
};
33-
3416
const linkFirestoreUserIdToDatabaseUser = async (firebaseUser: DecodedIdToken) => {
3517
// TODO this should not be hardcoded to x-team in the future?
3618
const xteamOrganization = await findOrganizationByName('x-team');
@@ -90,7 +72,7 @@ export const firebasePlugin = {
9072
if (!firebasePlugin) {
9173
return h.continue;
9274
}
93-
const { requiresAuth, requiredCapabilities } = firebasePlugin;
75+
const { requiresAuth } = firebasePlugin;
9476

9577
const {
9678
query: { firebaseIdToken },
@@ -108,16 +90,13 @@ export const firebasePlugin = {
10890
).data();
10991

11092
if (!firebaseUserData) {
111-
await setupInitialFirestoreUserData(firebaseUser.uid);
11293
firebaseUserData = {};
11394
}
11495

115-
const userCapabilities = firebaseUserData.gamesHq.capabilities || [];
116-
const meetsAllCapabilityChecks = requiredCapabilities.every((capability) =>
117-
userCapabilities.includes(capability)
118-
);
96+
const userRole = firebaseUserData.role || 'user';
97+
const isAdmin = userRole === 'admin';
11998

120-
if (!meetsAllCapabilityChecks) {
99+
if (!isAdmin) {
121100
throw Boom.badRequest('Lacking capabilities');
122101
}
123102
const firebaseUserRequestData = {

0 commit comments

Comments
 (0)