Update database schema and add signup_date, last_login, and role columns to user table
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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, {
|
||||
|
||||
@@ -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
|
||||
>
|
||||
|
||||
@@ -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();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user