You've already forked obsidian-visualiser
Add permissions
This commit is contained in:
@@ -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' });
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user