From 272fcaf3011007bf07b7e57aa7a550845b0505bf Mon Sep 17 00:00:00 2001 From: Peaceultime Date: Mon, 6 Jul 2026 18:37:43 +0200 Subject: [PATCH] Fix public character unreachable for non logged users --- server/api/character/[id].get.ts | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/server/api/character/[id].get.ts b/server/api/character/[id].get.ts index f77b8c9..05827b3 100644 --- a/server/api/character/[id].get.ts +++ b/server/api/character/[id].get.ts @@ -6,7 +6,6 @@ import { and, eq, exists, getTableColumns, isNotNull, or, sql } from 'drizzle-or export default defineEventHandler(async (e) => { const id = getRouterParam(e, "id"); - if(!id) { setResponseStatus(e, 400); @@ -14,12 +13,11 @@ export default defineEventHandler(async (e) => { } const session = await getUserSession(e); - - if(!session.user) + /* if(!session.user) { setResponseStatus(e, 401); return; - } + } */ const db = useDatabase(); @@ -44,10 +42,10 @@ export default defineEventHandler(async (e) => { } } }, - where: and(eq(characterTable.id, parseInt(id, 10)), or(eq(characterTable.visibility, 'public'), eq(characterTable.owner, session.user!.id), exists(db.select({ id: sql`NULL` }).from(campaignCharactersTable) + where: and(eq(characterTable.id, parseInt(id, 10)), or(eq(characterTable.visibility, 'public'), eq(characterTable.owner, session.user?.id ?? 0), exists(db.select({ id: sql`NULL` }).from(campaignCharactersTable) .leftJoin(campaignTable, eq(campaignCharactersTable.id, campaignTable.id)) - .leftJoin(campaignMembersTable, and(eq(campaignMembersTable.id, campaignTable.id), eq(campaignMembersTable.user, session.user.id))) - .where(and(eq(campaignCharactersTable.character, parseInt(id, 10)), or(eq(campaignTable.owner, session.user.id), isNotNull(campaignMembersTable.user))))))), + .leftJoin(campaignMembersTable, and(eq(campaignMembersTable.id, campaignTable.id), eq(campaignMembersTable.user, session.user?.id ?? 0))) + .where(and(eq(campaignCharactersTable.character, parseInt(id, 10)), or(eq(campaignTable.owner, session.user?.id ?? 0), isNotNull(campaignMembersTable.user))))))), }).sync(); if(character !== undefined)