Skip to content

Commit 6f549ef

Browse files
authored
Merge pull request #7 from hackclub/staging
Beta channel check
2 parents 220513c + bb853f0 commit 6f549ef

File tree

5 files changed

+35
-3
lines changed

5 files changed

+35
-3
lines changed

.env.example

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ APP_SECRET_KEY=changeme
1414

1515
SLACK_BOT_TOKEN=changeme
1616
SLACK_TEAM=T0266FRGM
17+
# BETA_CHANNEL_ID=
1718

1819
SUPER_ADMIN_SLACK_ID=changeme
1920

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "construct",
33
"private": true,
4-
"version": "0.0.1",
4+
"version": "0.1.1",
55
"type": "module",
66
"scripts": {
77
"dev": "vite dev",

src/routes/+page.server.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,6 @@ import { env } from '$env/dynamic/private';
33
export function load({ locals }) {
44
return {
55
loggedIn: locals.session !== null,
6-
idvDomain: env.IDV_DOMAIN
6+
idvDomain: env.IDV_DOMAIN,
77
};
88
}

src/routes/Footer.svelte

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
</script>
33

44
<footer
5-
class="flex w-full flex-col items-center justify-center px-10 pt-5 pb-3 md:mt-8 lg:mt-8 lg:flex-row"
5+
class="flex w-full flex-col items-center justify-center px-10 pt-5 pb-3 md:mt-8 lg:mt-8"
66
>
77
<div class="">
88
<p class="text-center">

src/routes/auth/callback/+server.ts

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,32 @@ export async function GET(event) {
106106
const profilePic = slackProfile['profile']['image_1024'];
107107
const username = slackProfile['profile']['display_name'];
108108

109+
if (env.BETA_CHANNEL_ID && env.BETA_CHANNEL_ID.length > 0) {
110+
const channelMembersURL = new URL('https://slack.com/api/conversations.members');
111+
channelMembersURL.searchParams.set('channel', env.BETA_CHANNEL_ID);
112+
113+
const channelMembersBody = new URLSearchParams();
114+
channelMembersBody.append('token', env.SLACK_BOT_TOKEN ?? '');
115+
116+
const channelMembersRes = await fetch(channelMembersURL, {
117+
method: 'POST',
118+
body: channelMembersBody
119+
});
120+
121+
const channelMembersResJSON = await channelMembersRes.json();
122+
123+
if (!channelMembersResJSON.ok) {
124+
const redirectURL = new URL(`${url.protocol}//${url.host}/auth/failed`);
125+
return redirect(302, redirectURL);
126+
}
127+
128+
if (!channelMembersResJSON['members'].includes(slack_id)) {
129+
// redirect to funny url
130+
const redirectURL = new URL(`https://www.youtube.com/watch?v=xvFZjo5PgG0`);
131+
return redirect(302, redirectURL);
132+
}
133+
}
134+
109135
// Check Hackatime trust
110136
const hackatimeTrust = (
111137
await (
@@ -130,6 +156,11 @@ export async function GET(event) {
130156
// Create user if doesn't exist
131157
let [databaseUser] = await db.select().from(user).where(eq(user.idvId, id)).limit(1);
132158

159+
if (databaseUser.trust === 'red') {
160+
// Prevent login
161+
return redirect(302, 'https://fraud.land');
162+
}
163+
133164
if (databaseUser) {
134165
// Update user (update name and profile picture and lastLoginAt on login)
135166
await db

0 commit comments

Comments
 (0)