Add permissions

This commit is contained in:
2024-11-07 14:26:57 +01:00
parent a392841012
commit 41951d7603
20 changed files with 523 additions and 16 deletions

View File

@@ -29,7 +29,43 @@ export function logSession(e: H3Event<EventRequestHandler>, session: UserSession
{
const db = useDatabase();
console.log("Logging session %s", session.id)
db.insert(userSessionsTable).values({ id: sql.placeholder('id'), user_id: sql.placeholder('user_id'), timestamp: sql.placeholder('timestamp') }).prepare().run({ id: session.id, user_id: session.user.id, timestamp: new Date() });
return session;
}
export async function refreshSessionFromDB(e: H3Event<EventRequestHandler>, sessionId: string): Promise<void>
{
const db = useDatabase();
const user = db.query.userSessionsTable.findFirst({
columns: {
id: false,
},
with: {
users: {
with: {
permission: true,
data: true,
}
}
},
where: (table) => eq(table.id, sql.placeholder('id'))
}).prepare().get({ id: sessionId });
if(user)
{
await replaceUserSession(e, {
id: sessionId,
user: {
...user.users.data,
email: user.users.email,
username: user.users.username,
state: user.users.state,
permissions: user.users.permission.map(e => e.permission),
}
});
}
else
{
throw createError({ statusCode: 401, message: 'Invalid session' });
}
}