Update database schema and add signup_date, last_login, and role columns to user table

This commit is contained in:
Sean Morley
2024-04-18 01:15:52 +00:00
parent f0eb5441f0
commit 2249052ab7
10 changed files with 456 additions and 2 deletions

View File

@@ -28,6 +28,15 @@ export const userTable = pgTable("user", {
last_name: text("last_name").notNull(),
icon: text("icon"),
hashed_password: varchar("hashed_password").notNull(),
signup_date: timestamp("signup_date", {
withTimezone: true,
mode: "date",
}).notNull(),
last_login: timestamp("last_login", {
withTimezone: true,
mode: "date",
}),
role: text("role").notNull(),
});
// export type SelectUser = typeof userTable.$inferSelect;

View File

@@ -20,6 +20,9 @@ export const lucia = new Lucia(adapter, {
first_name: attributes.first_name,
last_name: attributes.last_name,
icon: attributes.icon,
signup_date: attributes.signup_date,
last_login: attributes.last_login,
role: attributes.role,
};
},
});
@@ -38,4 +41,7 @@ export interface DatabaseUser {
last_name: string;
icon: string;
hashed_password: string;
signup_date: Date;
last_login: Date;
role: string;
}

View File

@@ -47,7 +47,7 @@ export const actions: Actions = {
});
}
const existingUser = await db
const existingUser:any = await db
.select()
.from(userTable)
.where(eq(userTable.username, username))
@@ -70,6 +70,14 @@ export const actions: Actions = {
});
}
await db
.update(userTable)
.set({
last_login: new Date(),
})
.where(eq(userTable.id, existingUser.id))
.execute();
const session = await lucia.createSession(existingUser.id, {});
const sessionCookie = lucia.createSessionCookie(session.id);
event.cookies.set(sessionCookie.name, sessionCookie.value, {

View File

@@ -7,6 +7,8 @@
let last_name = data.user?.last_name;
let user_id = data.user?.id;
let icon = data.user?.icon;
let signup_date = data.user?.signup_date;
let role = data.user?.role;
</script>
<h1 class="text-center font-extrabold text-4xl mb-6">Settings Page</h1>
@@ -65,4 +67,6 @@
</form>
</div>
<small class="text-center">For Debug Use: UUID={user_id}</small>
<small class="text-center"
><b>For Debug Use:</b> UUID={user_id} Signup Date={signup_date} Role={role}</small
>

View File

@@ -90,6 +90,9 @@ export const actions: Actions = {
first_name: firstName,
last_name: lastName,
hashed_password: hashedPassword,
signup_date: new Date(),
role: "user",
last_login: new Date(),
} as DatabaseUser)
.execute();