You've already forked obsidian-visualiser
Fix sessions, start profile UI and add middleware
This commit is contained in:
@@ -83,7 +83,7 @@ export default defineEventHandler(async (e): Promise<Return> => {
|
||||
return { success: false, error: new Error('Données utilisateur introuvable') };
|
||||
}
|
||||
|
||||
const data = await logSession(e, await setUserSession(e, {
|
||||
const data = logSession(e, await setUserSession(e, {
|
||||
user: {
|
||||
...user.data,
|
||||
email: user.email,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import useDatabase from "~/composables/useDatabase";
|
||||
import { userSessionsTable as sessions } from "~/db/schema";
|
||||
import { eq, and } from "drizzle-orm";
|
||||
import { userSessionsTable } from "~/db/schema";
|
||||
import { eq, and, sql } from "drizzle-orm";
|
||||
|
||||
const monthAsMs = 60 * 60 * 24 * 30 * 1000;
|
||||
|
||||
@@ -8,12 +8,7 @@ export default defineNitroPlugin(() => {
|
||||
const db = useDatabase();
|
||||
|
||||
sessionHooks.hook('fetch', async (session, event) => {
|
||||
const result = await db.query.userSessionsTable.findFirst({
|
||||
columns: {
|
||||
timestamp: true,
|
||||
},
|
||||
where: and(eq(sessions.id, session.id as unknown as number), eq(sessions.user_id, session.user.id))
|
||||
});
|
||||
const result = db.select({ timestamp: userSessionsTable.timestamp }).from(userSessionsTable).where(and(eq(userSessionsTable.id, sql.placeholder('id')), eq(userSessionsTable.user_id, sql.placeholder('user_id')))).prepare().get({ id: session.id, user_id: session.user.id });
|
||||
|
||||
if(!result)
|
||||
{
|
||||
@@ -27,9 +22,9 @@ export default defineNitroPlugin(() => {
|
||||
}
|
||||
else
|
||||
{
|
||||
await db.update(sessions).set({
|
||||
await db.update(userSessionsTable).set({
|
||||
timestamp: new Date(),
|
||||
}).where(and(eq(sessions.id, session.id as unknown as number), eq(sessions.user_id, session.user.id)));
|
||||
}).where(and(eq(userSessionsTable.id, sql.placeholder('id')), eq(userSessionsTable.user_id, sql.placeholder('user_id')))).prepare().run({ id: session.id, user_id: session.user.id });
|
||||
}
|
||||
});
|
||||
sessionHooks.hook('clear', async (session, event) => {
|
||||
@@ -37,7 +32,7 @@ export default defineNitroPlugin(() => {
|
||||
{
|
||||
try
|
||||
{
|
||||
await db.delete(sessions).where(and(eq(sessions.id, session.id as unknown as number), eq(sessions.user_id, session.user.id)));
|
||||
db.delete(userSessionsTable).where(and(eq(userSessionsTable.id, sql.placeholder('id')), eq(userSessionsTable.user_id, sql.placeholder('user_id')))).prepare().run({ id: session.id, user_id: session.user.id });
|
||||
}
|
||||
catch(e) { }
|
||||
}
|
||||
|
||||
@@ -29,6 +29,7 @@ export function logSession(e: H3Event<EventRequestHandler>, session: UserSession
|
||||
{
|
||||
const db = useDatabase();
|
||||
|
||||
db.insert(userSessionsTable).values({ id: sql.placeholder('id'), user_id: sql.placeholder('user_id'), timestamp: sql.placeholder('timestamp') }).prepare().execute({ id: session.id, user_id: session.user.id, timestamp: new Date()});
|
||||
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;
|
||||
}
|
||||
Reference in New Issue
Block a user