You've already forked obsidian-visualiser
Fix public character unreachable for non logged users
This commit is contained in:
@@ -6,7 +6,6 @@ import { and, eq, exists, getTableColumns, isNotNull, or, sql } from 'drizzle-or
|
|||||||
|
|
||||||
export default defineEventHandler(async (e) => {
|
export default defineEventHandler(async (e) => {
|
||||||
const id = getRouterParam(e, "id");
|
const id = getRouterParam(e, "id");
|
||||||
|
|
||||||
if(!id)
|
if(!id)
|
||||||
{
|
{
|
||||||
setResponseStatus(e, 400);
|
setResponseStatus(e, 400);
|
||||||
@@ -14,12 +13,11 @@ export default defineEventHandler(async (e) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const session = await getUserSession(e);
|
const session = await getUserSession(e);
|
||||||
|
/* if(!session.user)
|
||||||
if(!session.user)
|
|
||||||
{
|
{
|
||||||
setResponseStatus(e, 401);
|
setResponseStatus(e, 401);
|
||||||
return;
|
return;
|
||||||
}
|
} */
|
||||||
|
|
||||||
const db = useDatabase();
|
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(campaignTable, eq(campaignCharactersTable.id, campaignTable.id))
|
||||||
.leftJoin(campaignMembersTable, and(eq(campaignMembersTable.id, campaignTable.id), eq(campaignMembersTable.user, session.user.id)))
|
.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), isNotNull(campaignMembersTable.user))))))),
|
.where(and(eq(campaignCharactersTable.character, parseInt(id, 10)), or(eq(campaignTable.owner, session.user?.id ?? 0), isNotNull(campaignMembersTable.user))))))),
|
||||||
}).sync();
|
}).sync();
|
||||||
|
|
||||||
if(character !== undefined)
|
if(character !== undefined)
|
||||||
|
|||||||
Reference in New Issue
Block a user