diff --git a/apps/dispatch-server/modules/socketJWTmiddleware.ts b/apps/dispatch-server/modules/socketJWTmiddleware.ts
index 6ec74573..0670870f 100644
--- a/apps/dispatch-server/modules/socketJWTmiddleware.ts
+++ b/apps/dispatch-server/modules/socketJWTmiddleware.ts
@@ -1,12 +1,8 @@
import { ExtendedError, Server, Socket } from "socket.io";
import { prisma } from "@repo/db";
-if (!process.env.DISPATCH_APP_TOKEN)
- throw new Error("DISPATCH_APP_TOKEN is not defined");
+if (!process.env.DISPATCH_APP_TOKEN) throw new Error("DISPATCH_APP_TOKEN is not defined");
-export const jwtMiddleware = async (
- socket: Socket,
- next: (err?: ExtendedError) => void,
-) => {
+export const jwtMiddleware = async (socket: Socket, next: (err?: ExtendedError) => void) => {
try {
const { uid } = socket.handshake.auth;
if (!uid) return new Error("Authentication error");
diff --git a/apps/dispatch/app/dispatch/layout.tsx b/apps/dispatch/app/dispatch/layout.tsx
index b8c72619..514655b8 100644
--- a/apps/dispatch/app/dispatch/layout.tsx
+++ b/apps/dispatch/app/dispatch/layout.tsx
@@ -19,6 +19,10 @@ export default async function RootLayout({
if (!session) {
redirect("/login");
}
+
+ if (!session.user.emailVerified)
+ return ;
+
if (!session.user.permissions.includes("DISPO"))
return ;
return (
diff --git a/apps/dispatch/app/pilot/layout.tsx b/apps/dispatch/app/pilot/layout.tsx
index df59922c..60e56fd1 100644
--- a/apps/dispatch/app/pilot/layout.tsx
+++ b/apps/dispatch/app/pilot/layout.tsx
@@ -19,6 +19,10 @@ export default async function RootLayout({
if (!session) {
redirect("/login");
}
+ if (!session.user.emailVerified) {
+ return ;
+ }
+
if (!session.user.permissions.includes("PILOT"))
return ;
return (
diff --git a/apps/hub-server/index.ts b/apps/hub-server/index.ts
index a8fe991a..22c1a30f 100644
--- a/apps/hub-server/index.ts
+++ b/apps/hub-server/index.ts
@@ -11,7 +11,7 @@ app.use(cors());
app.use(router);
-const port = process.env.HUB_API_PORT || 3000;
+const port = process.env.HUB_SERVER_PORT || 3000;
app.listen(port, () => {
console.log(`Server is running on port ${port}`);
});
diff --git a/apps/hub-server/modules/mail-templates/Badge.tsx b/apps/hub-server/modules/mail-templates/Badge.tsx
index ff7b32f3..019d8187 100644
--- a/apps/hub-server/modules/mail-templates/Badge.tsx
+++ b/apps/hub-server/modules/mail-templates/Badge.tsx
@@ -13,7 +13,7 @@ const badgeImageMapping = {
export const Badge = ({ badge }: { badge: BADGES }) => (
(
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Bestätigung deiner E-Mail-Adresse
+
+
+
+
+ Hallo {user.firstname},
+
+
+
+
+ Klicke auf den folgenden Link, um deinen Account zu bestätigen:
+
+
+
+
+
+ E-Mail bestätigen
+
+
+
+
+
+ Oder gehe zu{" "}
+
+
+ {process.env.NEXT_PUBLIC_HUB_URL}/settings/email-verification
+
+
{" "}
+ und gib dort deinen Code ein.
+
+
+
+
+
+ Deinen Code lautet: {code}
+
+
+
+
+
+ Impressum
+
+ |
+
+ Datenschutzerklärung
+
+ |
+
+ Knowledgebase
+
+
+
+
+
+
+
+
+
+
+
+);
+
+export function renderVerificationCode({ user, code }: { user: User; code: string }) {
+ return render( );
+}
diff --git a/apps/hub-server/modules/mail-templates/CourseCompleted.tsx b/apps/hub-server/modules/mail-templates/CourseCompleted.tsx
index 69f2e138..66fd6d88 100644
--- a/apps/hub-server/modules/mail-templates/CourseCompleted.tsx
+++ b/apps/hub-server/modules/mail-templates/CourseCompleted.tsx
@@ -79,16 +79,12 @@ const Template = ({ event, user }: { user: User; event: Event }) => (
-
+
(
color: "#011936",
}}
>
- Du hast den Kurs {event.name} {" "}
- abgeschlossen!
+ Du hast den Kurs {event.name} abgeschlossen!
@@ -133,8 +128,7 @@ const Template = ({ event, user }: { user: User; event: Event }) => (
color: "#011936",
}}
>
- Mit dem Abschluss von Kursen verdienst du dir nach und
- nach immer mehr Badges.
+ Mit dem Abschluss von Kursen verdienst du dir nach und nach immer mehr Badges.
@@ -186,12 +180,6 @@ const Template = ({ event, user }: { user: User; event: Event }) => (