Skip to content

Commit 121db77

Browse files
authored
✨ feat: add email whitelist (#296)
1 parent b80b12c commit 121db77

File tree

13 files changed

+31
-25
lines changed

13 files changed

+31
-25
lines changed

src/api/handlers/agendaItem.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import {
77
schemaBuilder,
88
arg as rumbleArg
99
} from '$api/rumble';
10-
import { isDMUNEmail } from '$api/services/isDMUNEmail';
10+
import { isWhitelistedEmail } from '$api/services/isDMUNEmail';
1111
import { nanoid } from '$lib/helpers/nanoid';
1212
import { assertFindFirstExists, assertFirstEntryExists } from '@m1212e/rumble';
1313
import { GraphQLError } from 'graphql';
@@ -38,7 +38,7 @@ query({
3838

3939
abilityBuilder.agendaItem.allow(['read']).when(({ mustBeLoggedIn }) => {
4040
const user = mustBeLoggedIn();
41-
if (user?.email && isDMUNEmail(user.email)) {
41+
if (user?.email && isWhitelistedEmail(user.email)) {
4242
return 'allow';
4343
}
4444
});

src/api/handlers/committee.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import {
88
schemaBuilder,
99
arg as rumbleArg
1010
} from '$api/rumble';
11-
import { isDMUNEmail } from '$api/services/isDMUNEmail';
11+
import { isWhitelistedEmail } from '$api/services/isDMUNEmail';
1212
import { assertFirstEntryExists } from '@m1212e/rumble';
1313
import { and, count, eq, type InferSelectModel } from 'drizzle-orm';
1414
import { calculateMajority } from '$lib/utils/majorities';
@@ -19,7 +19,7 @@ const statusEnum = enum_({
1919

2020
abilityBuilder.committee.allow(['read', 'update']).when(({ mustBeLoggedIn }) => {
2121
const user = mustBeLoggedIn();
22-
if (user?.email && isDMUNEmail(user.email)) {
22+
if (user?.email && isWhitelistedEmail(user.email)) {
2323
return 'allow';
2424
}
2525
});

src/api/handlers/committeeMember.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@ import { db, schema } from '$api/db/db';
22
import { abilityBuilder, schemaBuilder } from '$api/rumble';
33
import { and, inArray } from 'drizzle-orm';
44
import { basics } from './basics';
5-
import { isDMUNEmail } from '$api/services/isDMUNEmail';
5+
import { isWhitelistedEmail } from '$api/services/isDMUNEmail';
66

77
const { arg, ref, pubsub, table } = basics('committeeMember');
88

99
abilityBuilder.committeeMember.allow(['read', 'update']).when(({ mustBeLoggedIn }) => {
1010
const user = mustBeLoggedIn();
11-
if (user?.email && isDMUNEmail(user.email)) {
11+
if (user?.email && isWhitelistedEmail(user.email)) {
1212
return 'allow';
1313
}
1414
});

src/api/handlers/conference.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,13 @@ import {
66
pubsub as rumblePubsub,
77
arg as rumbleArg
88
} from '$api/rumble';
9-
import { isDMUNEmail } from '$api/services/isDMUNEmail';
9+
import { isWhitelistedEmail } from '$api/services/isDMUNEmail';
1010
import { ConferenceMemberRef, ConferenceMemberWhereInput } from './conferenceMember';
1111

1212
abilityBuilder.conference.allow('read').when(({ mustBeLoggedIn }) => {
1313
const user = mustBeLoggedIn();
1414

15-
if (user?.email && isDMUNEmail(user.email)) {
15+
if (user?.email && isWhitelistedEmail(user.email)) {
1616
return 'allow';
1717
}
1818
});

src/api/handlers/conferenceMember.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import { abilityBuilder } from '$api/rumble';
2-
import { isDMUNEmail } from '$api/services/isDMUNEmail';
2+
import { isWhitelistedEmail } from '$api/services/isDMUNEmail';
33
import { basics } from './basics';
44

55
const { arg, ref, pubsub, table } = basics('conferenceMember');
66

77
abilityBuilder.conferenceMember.allow('read').when(({ mustBeLoggedIn }) => {
88
const user = mustBeLoggedIn();
9-
if (user?.email && isDMUNEmail(user.email)) {
9+
if (user?.email && isWhitelistedEmail(user.email)) {
1010
return 'allow';
1111
}
1212
});

src/api/handlers/conferenceUser.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@ import { abilityBuilder } from '$api/rumble';
22
import { eq } from 'drizzle-orm';
33
import { basics } from './basics';
44
import { schema } from '$api/db/db';
5-
import { isDMUNEmail } from '$api/services/isDMUNEmail';
5+
import { isWhitelistedEmail } from '$api/services/isDMUNEmail';
66

77
const { arg, ref, pubsub, table } = basics('conferenceUser');
88

99
abilityBuilder.conferenceUser.allow('read').when(({ mustBeLoggedIn }) => {
1010
const user = mustBeLoggedIn();
11-
if (user?.email && isDMUNEmail(user.email)) {
11+
if (user?.email && isWhitelistedEmail(user.email)) {
1212
return 'allow';
1313
}
1414
});

src/api/handlers/presenceChangedTimestamp.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { abilityBuilder } from '$api/rumble';
2-
import { isDMUNEmail } from '$api/services/isDMUNEmail';
2+
import { isWhitelistedEmail } from '$api/services/isDMUNEmail';
33
import { basics } from './basics';
44

55
const { arg, ref, pubsub, table } = basics('presenceChangedTimestamp');

src/api/handlers/representation.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import { abilityBuilder } from '$api/rumble';
2-
import { isDMUNEmail } from '$api/services/isDMUNEmail';
2+
import { isWhitelistedEmail } from '$api/services/isDMUNEmail';
33
import { basics } from './basics';
44

55
const { arg, ref, pubsub, table } = basics('representation');
66

77
abilityBuilder.representation.allow(['read', 'update']).when(({ mustBeLoggedIn }) => {
88
const user = mustBeLoggedIn();
9-
if (user?.email && isDMUNEmail(user.email)) {
9+
if (user?.email && isWhitelistedEmail(user.email)) {
1010
return 'allow';
1111
}
1212
});

src/api/handlers/speakerOnList.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { db, schema } from '$api/db/db';
55
import { and, count, eq, gt, gte, sql } from 'drizzle-orm';
66
import { assertFindFirstExists, assertFirstEntryExists } from '@m1212e/rumble';
77
import { SpeakersListRef } from './speakersList';
8-
import { isDMUNEmail } from '$api/services/isDMUNEmail';
8+
import { isWhitelistedEmail } from '$api/services/isDMUNEmail';
99

1010
const { arg, ref, pubsub, table } = basics('speakerOnList');
1111

@@ -17,7 +17,7 @@ export const SpeakerOnWhereArgs = arg;
1717

1818
abilityBuilder.speakerOnList.allow(['read', 'update', 'delete']).when(({ mustBeLoggedIn }) => {
1919
const user = mustBeLoggedIn();
20-
if (user?.email && isDMUNEmail(user.email)) {
20+
if (user?.email && isWhitelistedEmail(user.email)) {
2121
return 'allow';
2222
}
2323
});

src/api/handlers/speakersList.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import { basics } from './basics';
1212
import { assertFindFirstExists } from '@m1212e/rumble';
1313
import { GraphQLError } from 'graphql';
1414
import { SpeakerOnListRef, SpeakerOnWhereArgs } from './speakerOnList';
15-
import { isDMUNEmail } from '$api/services/isDMUNEmail';
15+
import { isWhitelistedEmail } from '$api/services/isDMUNEmail';
1616

1717
// const { arg, ref, pubsub: speakersListPubSub, table } = basics('speakersList');
1818

@@ -51,7 +51,7 @@ query({
5151

5252
abilityBuilder.speakersList.allow(['read', 'update', 'delete']).when(({ mustBeLoggedIn }) => {
5353
const user = mustBeLoggedIn();
54-
if (user?.email && isDMUNEmail(user.email)) {
54+
if (user?.email && isWhitelistedEmail(user.email)) {
5555
return 'allow';
5656
}
5757
});

0 commit comments

Comments
 (0)