From da84c754da45fc3bbb5fcd4ce7059018cca9ebca Mon Sep 17 00:00:00 2001 From: Theodor Kvalsvik Lauritzen <19690242+theodorklauritzen@users.noreply.github.com> Date: Sun, 24 Nov 2024 14:23:44 +0100 Subject: [PATCH 1/7] fix: Registration form --- src/app/(auth)/register/RegistrationForm.tsx | 16 ++++--- src/app/(auth)/register/page.tsx | 4 +- src/app/_components/UI/Select.tsx | 3 +- src/auth/VevenAdapter.ts | 44 +++++++++++++------- src/lib/feide/ConfigVars.ts | 2 +- 5 files changed, 43 insertions(+), 26 deletions(-) diff --git a/src/app/(auth)/register/RegistrationForm.tsx b/src/app/(auth)/register/RegistrationForm.tsx index 7e3b19a31..065537d2b 100644 --- a/src/app/(auth)/register/RegistrationForm.tsx +++ b/src/app/(auth)/register/RegistrationForm.tsx @@ -6,11 +6,15 @@ import { SelectString } from '@/components/UI/Select' import TextInput from '@/components/UI/TextInput' import { useUser } from '@/auth/useUser' import { sexConfig } from '@/services/users/ConfigVars' -import { SEX } from '@prisma/client' +import { SEX, User } from '@prisma/client' import { signIn } from 'next-auth/react' import { useSearchParams } from 'next/navigation' -export default function RegistrationForm() { +export default function RegistrationForm({ + userData +}: { + userData: Pick +}) { const searchParams = useSearchParams() const callbackUrl = searchParams.get('callbackUrl') || '/users/me' @@ -38,11 +42,11 @@ export default function RegistrationForm() { callbackUrl })} > - - - {lastPassword = e.target.value}}/> + + + { lastPassword = e.target.value }} /> - + } diff --git a/src/app/(auth)/register/page.tsx b/src/app/(auth)/register/page.tsx index 6a36f16ca..28d4f0fc7 100644 --- a/src/app/(auth)/register/page.tsx +++ b/src/app/(auth)/register/page.tsx @@ -48,12 +48,12 @@ export default async function Register({ searchParams }: PropTypes) { } if (updatedUser.data.acceptedTerms) { - redirect(searchParams.callbackUrl ?? 'users/me') + redirect(searchParams.callbackUrl ?? '/users/me') } if (!updatedUser.data.emailVerified) { redirect('/register-email') } - return + return } diff --git a/src/app/_components/UI/Select.tsx b/src/app/_components/UI/Select.tsx index 1b9727101..29ab41077 100644 --- a/src/app/_components/UI/Select.tsx +++ b/src/app/_components/UI/Select.tsx @@ -32,6 +32,7 @@ export function SelectConstructor(valueConver (option) => @@ -45,7 +46,7 @@ export function SelectConstructor(valueConver id={id} name={name} { - ...(value ? { value } : { defaultValue }) + ...{ value } } onChange={(event) => { if (onChange && options.length > 0) { diff --git a/src/auth/VevenAdapter.ts b/src/auth/VevenAdapter.ts index f6473d9b8..0adabe311 100644 --- a/src/auth/VevenAdapter.ts +++ b/src/auth/VevenAdapter.ts @@ -2,8 +2,8 @@ import 'server-only' import { readJWTPayload } from '@/jwt/jwtReadUnsecure' import { createFeideAccount } from '@/services/auth/feideAccounts/create' import { readUserOrNullOfFeideAccount } from '@/services/auth/feideAccounts/read' -import { User } from '@/services/users' import { readUserOrNull } from '@/services/users/read' +import { userFilterSelection } from '@/services/users/ConfigVars' import type { UserFiltered } from '@/services/users/Types' import type { PrismaClient } from '@prisma/client' import type { Adapter, AdapterUser, AdapterAccount } from 'next-auth/adapters' @@ -85,17 +85,15 @@ export default function VevenAdapter(prisma: PrismaClient): Adapter { const username = await generateUsername(prisma, user.username, user.lastname) - const createdUser = await User.create.client('NEW').execute({ + const createdUser = await prisma.user.create({ data: { email: user.email, firstname: user.firstname, lastname: user.lastname, username, - emailVerified: null, //(new Date()).toISOString(), - }, - params: undefined, - session: null - }, { withAuth: false }) + emailVerified: null, + } + }) return convertToAdapterUser(createdUser) }, @@ -112,9 +110,24 @@ export default function VevenAdapter(prisma: PrismaClient): Adapter { console.log('get email') console.log(email) const user = await readUserOrNull({ email }) - console.log(user) - return user && convertToAdapterUser(user) + if (user) { + return convertToAdapterUser(user) + } + + const account = await prisma.feideAccount.findUnique({ + where: { + email, + }, + include: { + user: { + select: userFilterSelection, + }, + }, + }) + if (!account) return null + + return convertToAdapterUser(account.user) }, async getUserByAccount({ providerAccountId, provider }) { @@ -132,16 +145,15 @@ export default function VevenAdapter(prisma: PrismaClient): Adapter { async updateUser(user) { console.log('update u') - const updatedUser = await User.update.client('NEW').execute({ - params: { id: Number(user.id) }, + const updatedUser = await prisma.user.update({ + where: { + id: Number(user.id), + }, data: { - email: user.email, firstname: user.firstname, lastname: user.lastname, - username: user.username, - }, - session: null - }, { withAuth: false }) + } + }) return convertToAdapterUser(updatedUser) }, diff --git a/src/lib/feide/ConfigVars.ts b/src/lib/feide/ConfigVars.ts index 4c22a76f0..55b880c73 100644 --- a/src/lib/feide/ConfigVars.ts +++ b/src/lib/feide/ConfigVars.ts @@ -1,3 +1,3 @@ import 'server-only' -export const feideScope = 'openid email groups-edu userid userinfo-mobile userinfo-name longterm' +export const feideScope = 'openid email groups-edu userid userinfo-mobile userinfo-name' From a3885893e8b8626cee35c56c21ca5d4c4e285d92 Mon Sep 17 00:00:00 2001 From: Theodor Kvalsvik Lauritzen <19690242+theodorklauritzen@users.noreply.github.com> Date: Sun, 24 Nov 2024 14:56:29 +0100 Subject: [PATCH 2/7] fix: Username generation --- .../(auth)/register-email/EmailregistrationForm.tsx | 4 ++-- src/app/(auth)/register/page.tsx | 11 ++++++----- src/app/_components/UI/Select.tsx | 2 +- src/auth/VevenAdapter.ts | 4 ++-- src/lib/feide/FeideProvider.ts | 1 + .../notifications/email/systemMail/verifyEmail.tsx | 2 +- 6 files changed, 13 insertions(+), 11 deletions(-) diff --git a/src/app/(auth)/register-email/EmailregistrationForm.tsx b/src/app/(auth)/register-email/EmailregistrationForm.tsx index a3dc566a9..8f75a264e 100644 --- a/src/app/(auth)/register-email/EmailregistrationForm.tsx +++ b/src/app/(auth)/register-email/EmailregistrationForm.tsx @@ -6,9 +6,9 @@ import { useUser } from '@/auth/useUser' import { useRouter, useSearchParams } from 'next/navigation' import { useState } from 'react' -export default async function EmailRegistrationForm() { +export default function EmailRegistrationForm() { const searchParams = useSearchParams() - const callbackUrl = searchParams.get('callbackUrl') || 'users/me' + const callbackUrl = searchParams.get('callbackUrl') || '/users/me' const [feedback, setFeedback] = useState(null) diff --git a/src/app/(auth)/register/page.tsx b/src/app/(auth)/register/page.tsx index 28d4f0fc7..6ca7327d0 100644 --- a/src/app/(auth)/register/page.tsx +++ b/src/app/(auth)/register/page.tsx @@ -19,6 +19,8 @@ export default async function Register({ searchParams }: PropTypes) { shouldRedirect: false, }) + let userId = user?.id + if (typeof searchParams.token === 'string') { const verify = await verifyUserEmailAction(searchParams.token) if (!verify.success) { @@ -28,21 +30,20 @@ export default async function Register({ searchParams }: PropTypes) { if (user && verify.data.id !== user.id) { // TODO: Logout - console.log('Should logout') + throw new Error('Email is verified. Cannot continue registrations while another user is logged in.') } console.log(verify) + userId = verify.data.id //TODO: Login the correct user // See https://github.com/nextauthjs/next-auth/discussions/5334 - } - - if (!authorized || !user) { + } else if (!authorized || !user) { return notFound() } //TODO: change to action. - const updatedUser = await safeServerCall(() => readUser({ id: user.id })) + const updatedUser = await safeServerCall(() => readUser({ id: userId })) if (!updatedUser.success) { return notFound() } diff --git a/src/app/_components/UI/Select.tsx b/src/app/_components/UI/Select.tsx index 29ab41077..8ffa0029c 100644 --- a/src/app/_components/UI/Select.tsx +++ b/src/app/_components/UI/Select.tsx @@ -46,7 +46,7 @@ export function SelectConstructor(valueConver id={id} name={name} { - ...{ value } + ...(value ? { value } : { defaultValue }) } onChange={(event) => { if (onChange && options.length > 0) { diff --git a/src/auth/VevenAdapter.ts b/src/auth/VevenAdapter.ts index 0adabe311..9f99201ac 100644 --- a/src/auth/VevenAdapter.ts +++ b/src/auth/VevenAdapter.ts @@ -60,8 +60,8 @@ async function generateUsername(prisma: PrismaClient, preferredUsername: string, } } - for (let i = overlap + 1; i <= lastlastname.length; i++) { - username = `${username}${lastlastname.slice(overlap, i)}` + for (let i = overlap; i < lastlastname.length; i++) { + username = `${username}${lastlastname[i]}` if (!existingUsernames.has(username)) { return username } diff --git a/src/lib/feide/FeideProvider.ts b/src/lib/feide/FeideProvider.ts index 284b8849b..fb16b68d2 100644 --- a/src/lib/feide/FeideProvider.ts +++ b/src/lib/feide/FeideProvider.ts @@ -53,6 +53,7 @@ export default function FeideProvider

( lastname: extendedUserInfo.sn?.join(' '), } }, + allowDangerousEmailAccountLinking: true, // This will try to link accounts with the same email options, } } diff --git a/src/services/notifications/email/systemMail/verifyEmail.tsx b/src/services/notifications/email/systemMail/verifyEmail.tsx index 002aa9875..99c170166 100644 --- a/src/services/notifications/email/systemMail/verifyEmail.tsx +++ b/src/services/notifications/email/systemMail/verifyEmail.tsx @@ -15,7 +15,7 @@ export async function sendVerifyEmail(user: UserFiltered, email: string) { sub: user.id, }, emailValidationExpiration) - const link = `${process.env.DOMAIN}/register?token=${jwt}` + const link = `${process.env.NEXTAUTH_URL}/register?token=${jwt}` await sendSystemMail(user.email, 'Bekreft e-post', ) } From a4085b511fe46ee55ad28261481e8dc930868601 Mon Sep 17 00:00:00 2001 From: Theodor Kvalsvik Lauritzen <19690242+theodorklauritzen@users.noreply.github.com> Date: Sun, 24 Nov 2024 16:08:30 +0100 Subject: [PATCH 3/7] feat: Add special users to the migration list --- containers/nginx/default.conf | 4 ++- containers/nginx/nginx.dev.conf | 6 +++-- .../src/dobbelOmega/migrateUsers.ts | 25 +++++++++++++++++++ 3 files changed, 32 insertions(+), 3 deletions(-) diff --git a/containers/nginx/default.conf b/containers/nginx/default.conf index 4163cc286..030e939f1 100644 --- a/containers/nginx/default.conf +++ b/containers/nginx/default.conf @@ -43,5 +43,7 @@ server { proxy_cache_bypass $http_upgrade; client_max_body_size 1000M; proxy_set_header Referrer-Policy no-referrer; + fastcgi_buffers 16 16k; + fastcgi_buffer_size 32k; } -} \ No newline at end of file +} diff --git a/containers/nginx/nginx.dev.conf b/containers/nginx/nginx.dev.conf index 28d609634..69d10f1e3 100644 --- a/containers/nginx/nginx.dev.conf +++ b/containers/nginx/nginx.dev.conf @@ -11,7 +11,7 @@ http { } default_type application/octet-stream; } - + location / { proxy_pass http://projectnext:3000; proxy_http_version 1.1; @@ -21,6 +21,8 @@ http { proxy_cache_bypass $http_upgrade; client_max_body_size 1000M; proxy_set_header Referrer-Policy no-referrer; + fastcgi_buffers 16 16k; + fastcgi_buffer_size 32k; } } -} \ No newline at end of file +} diff --git a/src/prisma/prismaservice/src/dobbelOmega/migrateUsers.ts b/src/prisma/prismaservice/src/dobbelOmega/migrateUsers.ts index 94b3be46f..60caa7ab7 100644 --- a/src/prisma/prismaservice/src/dobbelOmega/migrateUsers.ts +++ b/src/prisma/prismaservice/src/dobbelOmega/migrateUsers.ts @@ -32,6 +32,31 @@ export default async function migrateUsers( } } }) + + if (limits.users) { + const extraUsers = await Promise.all(['theodokl104', 'martiarm104', 'johanhst103', 'pauliusj103'].map(async uname => + await vevenPrisma.users.findUnique({ + where: { + username_order: { + username: uname.slice(0, -3), + order: Number(uname.slice(-3)) + } + }, + include: { + StudyProgrammes: { + select: { + years: true + } + } + } + }) + )) + + extraUsers.forEach(user => { + if (user) users_.push(user) + }) + } + const users = makeUsernameUnique(makeEmailUnique(users_)) const soelleGroup = await pnPrisma.omegaMembershipGroup.findUniqueOrThrow({ From 2bbb85cf8192216eb31fd280071e01d524e33079 Mon Sep 17 00:00:00 2001 From: Theodor Kvalsvik Lauritzen <19690242+theodorklauritzen@users.noreply.github.com> Date: Sun, 24 Nov 2024 16:28:46 +0100 Subject: [PATCH 4/7] fix: Expand buffer size in nginx, due to larges headers while login with feide --- containers/nginx/default.conf | 5 +++-- containers/nginx/nginx.dev.conf | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/containers/nginx/default.conf b/containers/nginx/default.conf index 030e939f1..af6509fbb 100644 --- a/containers/nginx/default.conf +++ b/containers/nginx/default.conf @@ -43,7 +43,8 @@ server { proxy_cache_bypass $http_upgrade; client_max_body_size 1000M; proxy_set_header Referrer-Policy no-referrer; - fastcgi_buffers 16 16k; - fastcgi_buffer_size 32k; + proxy_buffer_size 128k; + proxy_buffers 4 256k; + proxy_busy_buffers_size 256k; } } diff --git a/containers/nginx/nginx.dev.conf b/containers/nginx/nginx.dev.conf index 69d10f1e3..24e962dcd 100644 --- a/containers/nginx/nginx.dev.conf +++ b/containers/nginx/nginx.dev.conf @@ -21,8 +21,9 @@ http { proxy_cache_bypass $http_upgrade; client_max_body_size 1000M; proxy_set_header Referrer-Policy no-referrer; - fastcgi_buffers 16 16k; - fastcgi_buffer_size 32k; + proxy_buffer_size 128k; + proxy_buffers 4 256k; + proxy_busy_buffers_size 256k; } } } From ceeaf7717ad8e382618553ba9667fb15902dd586 Mon Sep 17 00:00:00 2001 From: Theodor Kvalsvik Lauritzen <19690242+theodorklauritzen@users.noreply.github.com> Date: Sun, 24 Nov 2024 21:21:23 +0100 Subject: [PATCH 5/7] fix: Small fixes in the registration --- containers/nginx/default.conf | 6 +++--- containers/nginx/nginx.dev.conf | 6 +++--- src/app/(auth)/login/page.module.scss | 2 +- src/app/(auth)/login/page.tsx | 1 + src/app/(auth)/register/RegistrationForm.tsx | 16 ++++++++++++---- src/app/(auth)/register/page.tsx | 15 +++++---------- src/auth/VevenAdapter.ts | 9 +++++++-- .../email/systemMail/verifyEmail.tsx | 2 +- 8 files changed, 33 insertions(+), 24 deletions(-) diff --git a/containers/nginx/default.conf b/containers/nginx/default.conf index af6509fbb..38f386f41 100644 --- a/containers/nginx/default.conf +++ b/containers/nginx/default.conf @@ -43,8 +43,8 @@ server { proxy_cache_bypass $http_upgrade; client_max_body_size 1000M; proxy_set_header Referrer-Policy no-referrer; - proxy_buffer_size 128k; - proxy_buffers 4 256k; - proxy_busy_buffers_size 256k; + proxy_buffer_size 32k; + proxy_buffers 4 64k; + proxy_busy_buffers_size 64k; } } diff --git a/containers/nginx/nginx.dev.conf b/containers/nginx/nginx.dev.conf index 24e962dcd..af5c6b7c6 100644 --- a/containers/nginx/nginx.dev.conf +++ b/containers/nginx/nginx.dev.conf @@ -21,9 +21,9 @@ http { proxy_cache_bypass $http_upgrade; client_max_body_size 1000M; proxy_set_header Referrer-Policy no-referrer; - proxy_buffer_size 128k; - proxy_buffers 4 256k; - proxy_busy_buffers_size 256k; + proxy_buffer_size 32k; + proxy_buffers 4 64k; + proxy_busy_buffers_size 64k; } } } diff --git a/src/app/(auth)/login/page.module.scss b/src/app/(auth)/login/page.module.scss index 607dd1cc4..4bcd83a7d 100644 --- a/src/app/(auth)/login/page.module.scss +++ b/src/app/(auth)/login/page.module.scss @@ -8,4 +8,4 @@ &:hover { color: ohma.$colors-gray-500; } -} \ No newline at end of file +} diff --git a/src/app/(auth)/login/page.tsx b/src/app/(auth)/login/page.tsx index c1a782914..fb95eeb22 100644 --- a/src/app/(auth)/login/page.tsx +++ b/src/app/(auth)/login/page.tsx @@ -36,6 +36,7 @@ export default function LogIn() { redirect: true, callbackUrl: searchParams.get('callbackUrl') || '/users/me' })}>Logg inn med Feide +
Glemt passord?

Er det første gang du logger inn? Da er det bare å logge inn med feide for å lage en bruker.

diff --git a/src/app/(auth)/register/RegistrationForm.tsx b/src/app/(auth)/register/RegistrationForm.tsx index 065537d2b..b1cff02ac 100644 --- a/src/app/(auth)/register/RegistrationForm.tsx +++ b/src/app/(auth)/register/RegistrationForm.tsx @@ -6,14 +6,16 @@ import { SelectString } from '@/components/UI/Select' import TextInput from '@/components/UI/TextInput' import { useUser } from '@/auth/useUser' import { sexConfig } from '@/services/users/ConfigVars' -import { SEX, User } from '@prisma/client' -import { signIn } from 'next-auth/react' +import { SEX, type User } from '@prisma/client' +import { signIn, signOut } from 'next-auth/react' import { useSearchParams } from 'next/navigation' export default function RegistrationForm({ - userData + userData, + shouldLogOut, }: { - userData: Pick + userData: Pick, + shouldLogOut?: boolean }) { const searchParams = useSearchParams() const callbackUrl = searchParams.get('callbackUrl') || '/users/me' @@ -23,6 +25,12 @@ export default function RegistrationForm({ shouldRedirect: true, }) + if (shouldLogOut) { + signOut({ + redirect: false + }) + } + const lastUsername = userAuth.user?.username let lastPassword: string = '' diff --git a/src/app/(auth)/register/page.tsx b/src/app/(auth)/register/page.tsx index 6ca7327d0..7db176ffc 100644 --- a/src/app/(auth)/register/page.tsx +++ b/src/app/(auth)/register/page.tsx @@ -20,29 +20,24 @@ export default async function Register({ searchParams }: PropTypes) { }) let userId = user?.id + let shouldLogOut = false if (typeof searchParams.token === 'string') { const verify = await verifyUserEmailAction(searchParams.token) if (!verify.success) { - console.log(verify) - return

Token er ugyldig

+ redirect('./register') } if (user && verify.data.id !== user.id) { - // TODO: Logout - throw new Error('Email is verified. Cannot continue registrations while another user is logged in.') + // throw new Error('Email is verified. Cannot continue registrations while another user is logged in.') + shouldLogOut = true } - console.log(verify) userId = verify.data.id - - //TODO: Login the correct user - // See https://github.com/nextauthjs/next-auth/discussions/5334 } else if (!authorized || !user) { return notFound() } - //TODO: change to action. const updatedUser = await safeServerCall(() => readUser({ id: userId })) if (!updatedUser.success) { return notFound() @@ -56,5 +51,5 @@ export default async function Register({ searchParams }: PropTypes) { redirect('/register-email') } - return + return } diff --git a/src/auth/VevenAdapter.ts b/src/auth/VevenAdapter.ts index 9f99201ac..3e087344b 100644 --- a/src/auth/VevenAdapter.ts +++ b/src/auth/VevenAdapter.ts @@ -39,6 +39,9 @@ async function generateUsername(prisma: PrismaClient, preferredUsername: string, username: { startsWith: preferredUsername } + }, + select: { + username: true } }) @@ -92,7 +95,8 @@ export default function VevenAdapter(prisma: PrismaClient): Adapter { lastname: user.lastname, username, emailVerified: null, - } + }, + select: userFilterSelection, }) return convertToAdapterUser(createdUser) @@ -152,7 +156,8 @@ export default function VevenAdapter(prisma: PrismaClient): Adapter { data: { firstname: user.firstname, lastname: user.lastname, - } + }, + select: userFilterSelection, }) return convertToAdapterUser(updatedUser) diff --git a/src/services/notifications/email/systemMail/verifyEmail.tsx b/src/services/notifications/email/systemMail/verifyEmail.tsx index 99c170166..a88478e7a 100644 --- a/src/services/notifications/email/systemMail/verifyEmail.tsx +++ b/src/services/notifications/email/systemMail/verifyEmail.tsx @@ -17,5 +17,5 @@ export async function sendVerifyEmail(user: UserFiltered, email: string) { const link = `${process.env.NEXTAUTH_URL}/register?token=${jwt}` - await sendSystemMail(user.email, 'Bekreft e-post', ) + await sendSystemMail(parse.email, 'Bekreft e-post', ) } From f37a37833c25cbca44508c73e3c35052b3efdeb2 Mon Sep 17 00:00:00 2001 From: Theodor Kvalsvik Lauritzen <19690242+theodorklauritzen@users.noreply.github.com> Date: Sun, 24 Nov 2024 21:37:55 +0100 Subject: [PATCH 6/7] chore: Add some details around the OmegaID QR code --- .../OmegaId/identification/OmegaIdElement.module.scss | 8 ++++++++ .../OmegaId/identification/OmegaIdElement.tsx | 9 +++++++++ 2 files changed, 17 insertions(+) diff --git a/src/app/_components/OmegaId/identification/OmegaIdElement.module.scss b/src/app/_components/OmegaId/identification/OmegaIdElement.module.scss index 811707e85..deea42e8b 100644 --- a/src/app/_components/OmegaId/identification/OmegaIdElement.module.scss +++ b/src/app/_components/OmegaId/identification/OmegaIdElement.module.scss @@ -2,4 +2,12 @@ .OmegaIdElement { max-width: 400px; + + > h2, h4 { + text-align: center; + } + + > h2 { + font-weight: bold; + } } diff --git a/src/app/_components/OmegaId/identification/OmegaIdElement.tsx b/src/app/_components/OmegaId/identification/OmegaIdElement.tsx index 4f3098c14..3e9b3d919 100644 --- a/src/app/_components/OmegaId/identification/OmegaIdElement.tsx +++ b/src/app/_components/OmegaId/identification/OmegaIdElement.tsx @@ -1,5 +1,6 @@ 'use client' import styles from './OmegaIdElement.module.scss' +import { useUser } from '@/auth/useUser' import { generateOmegaIdAction } from '@/actions/omegaid/generate' import { readJWTPayload } from '@/jwt/jwtReadUnsecure' import { compressOmegaId } from '@/services/omegaid/compress' @@ -13,6 +14,8 @@ export default function OmegaIdElement({ token }: { }) { const [tokenState, setTokenState] = useState(token) + const { user } = useUser() + const { SVG } = useQRCode() const JWTPayload = readJWTPayload(tokenState) @@ -39,9 +42,15 @@ export default function OmegaIdElement({ token }: { return () => clearInterval(interval) }) + if (!user) return

Could not load OmegaID, since the user is not loggedin.

+ return
+

Omega ID

+

{user.firstname} {user.lastname}

+

{user.username}

+

{user.id}

} From d7ed9fb5d1ac364f1f43e343a886f7cfc801a40b Mon Sep 17 00:00:00 2001 From: Theodor Kvalsvik Lauritzen <19690242+theodorklauritzen@users.noreply.github.com> Date: Tue, 26 Nov 2024 19:07:02 +0100 Subject: [PATCH 7/7] fix: resolve conversations --- default.env | 1 + src/app/(auth)/register/page.tsx | 1 - src/services/notifications/email/systemMail/verifyEmail.tsx | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/default.env b/default.env index f7ff6660e..a625b1d53 100644 --- a/default.env +++ b/default.env @@ -1,5 +1,6 @@ # Server info DOMAIN=omega.ntnu.no +SERVER_LINK_PREFIX=http://localhost:80 # API Keys # Feide diff --git a/src/app/(auth)/register/page.tsx b/src/app/(auth)/register/page.tsx index 7db176ffc..bb5af77dc 100644 --- a/src/app/(auth)/register/page.tsx +++ b/src/app/(auth)/register/page.tsx @@ -29,7 +29,6 @@ export default async function Register({ searchParams }: PropTypes) { } if (user && verify.data.id !== user.id) { - // throw new Error('Email is verified. Cannot continue registrations while another user is logged in.') shouldLogOut = true } diff --git a/src/services/notifications/email/systemMail/verifyEmail.tsx b/src/services/notifications/email/systemMail/verifyEmail.tsx index a88478e7a..a9a2fa172 100644 --- a/src/services/notifications/email/systemMail/verifyEmail.tsx +++ b/src/services/notifications/email/systemMail/verifyEmail.tsx @@ -15,7 +15,7 @@ export async function sendVerifyEmail(user: UserFiltered, email: string) { sub: user.id, }, emailValidationExpiration) - const link = `${process.env.NEXTAUTH_URL}/register?token=${jwt}` + const link = `${process.env.SERVER_LINK_PREFIX}/register?token=${jwt}` await sendSystemMail(parse.email, 'Bekreft e-post', ) }