diff --git a/src/routes/account/+page.server.ts b/src/routes/account/+page.server.ts new file mode 100644 index 0000000..5f1050b --- /dev/null +++ b/src/routes/account/+page.server.ts @@ -0,0 +1,23 @@ +import { fail, redirect } from '@sveltejs/kit'; + +import type { Actions, PageServerLoad } from './$types'; + +export const load: PageServerLoad = async ({ locals: { authReq } }) => { + const session = await authReq.validate(); + if (!session) throw redirect(302, '/login'); + return { + username: session.user.username + }; +}; + +export const actions: Actions = { + signout: async ({ locals: { auth, authReq } }) => { + const session = await authReq.validate(); + if (!session) return fail(401); + + await auth.invalidateSession(session.sessionId); + authReq.setSession(null); // remove cookie + + throw redirect(302, '/login'); + } +}; diff --git a/src/routes/account/+page.svelte b/src/routes/account/+page.svelte new file mode 100644 index 0000000..5484b3d --- /dev/null +++ b/src/routes/account/+page.svelte @@ -0,0 +1,119 @@ + + + + Account | Roll With It + + + + Account + + + {#if form?.type === 'updateAccount'} + {form?.message} + {/if} + + Username + + + + + + + Save Changes + + + + + + {#if form?.type === 'changePassword'} + {form.message} + {/if} + + Current Password + + + + + + New Password + + + + Confirm New Password + + + + + + Change Password + + + + + + + Billing Information + Thank you for your support! + + + + + Logout + +