From a470c82ff639e56804d41ed1e9e230dbad27090d Mon Sep 17 00:00:00 2001 From: split Date: Wed, 10 Jul 2024 22:40:38 -0700 Subject: [PATCH] Add clear button --- src/lib/oidc.ts | 12 +++++++----- src/routes/set/+page.server.ts | 17 ++++++++++------- src/routes/set/+page.svelte | 9 +++------ 3 files changed, 20 insertions(+), 18 deletions(-) diff --git a/src/lib/oidc.ts b/src/lib/oidc.ts index 0158259..65e15fb 100644 --- a/src/lib/oidc.ts +++ b/src/lib/oidc.ts @@ -21,7 +21,7 @@ export function launchLogin(url: string) { response_type: "code", client_id: configuration.oauth2.client.id, redirect_uri: url, - scope: "openid profile", + scope: configuration.oauth2.client.scopes, state }) // Did not think this would work lmao @@ -97,16 +97,18 @@ export async function getUserInfo(id: string) { userInfo = userInfoCache.get(tokenInfo.owner) else { let userInfoRequest = await fetchUserInfo(tokenInfo.token) + console.log(`userinforequest with ${userInfoRequest.status}`) if (!userInfoRequest.ok) { // assume that token has expired. // try fetching a new one - + console.log("refresh token", tokenInfo.refreshToken) if (!tokenInfo.refreshToken) return // no refresh token. back out let token = await getNewToken({ grant_type: "refresh_token", refresh_token: tokenInfo.refreshToken }) - + console.log("new token", token) + console.log("new reftoken", token?.refresh_token) if (!token) return // refresh failed. back out await prisma.token.update({ where: { id }, @@ -139,7 +141,7 @@ export async function getUserInfo(id: string) { // cache userinfo userInfoCache.set(tokenInfo.owner, userInfo) - setTimeout(() => userInfoCache.delete(tokenInfo.owner), 60*60*1000) + setTimeout(() => userInfoCache.delete(tokenInfo.owner), 15*60*1000) } return { ...userInfo, identifier: userInfo[configuration.userinfo.identifier] } as User @@ -179,7 +181,7 @@ export async function getRequestUser(request: Request, cookies: Cookies) { // could cache this, but lazy let userInfo = await (await fetchUserInfo(tokens.access_token)).json() as User - + console.log(tokens.refresh_token) // create a new token let newToken = await prisma.token.create({ data: { diff --git a/src/routes/set/+page.server.ts b/src/routes/set/+page.server.ts index 61ec07a..892bb37 100644 --- a/src/routes/set/+page.server.ts +++ b/src/routes/set/+page.server.ts @@ -16,18 +16,20 @@ export async function load({ request, parent, url }) { } export const actions = { - set: async ({request, cookies}) => { + default: async ({request, cookies}) => { let user = await getRequestUser(request, cookies); if (!user) return fail(401, {error: "unauthenticated"}) let submission = await request.formData(); - let newAvatar = submission.get("newAvatar") - if (newAvatar !== undefined && !(newAvatar instanceof File)) - return fail(400, {success: false, error: "incorrect entry type"}) - if (!configuration.allowed_types.includes(newAvatar.type)) - return fail(400, {success: false, error: `allowed types does not include ${newAvatar.type}`}) - + let newAvatar = undefined + if (submission.get("action") != "Clear") { + newAvatar = submission.get("newAvatar") + if (newAvatar !== undefined && !(newAvatar instanceof File)) + return fail(400, {success: false, error: "incorrect entry type"}) + if (!configuration.allowed_types.includes(newAvatar.type)) + return fail(400, {success: false, error: `allowed types does not include ${newAvatar.type}`}) + } let time = await setNewAvatar(user.sub, newAvatar) return { @@ -35,6 +37,7 @@ export const actions = { message: Object.entries(time) .map(([res, time]) => `${res}x${res} took ${time}ms to render`) .join("\n") + || "No timing information available" } } } \ No newline at end of file diff --git a/src/routes/set/+page.svelte b/src/routes/set/+page.svelte index 845a132..2b8acd6 100644 --- a/src/routes/set/+page.svelte +++ b/src/routes/set/+page.svelte @@ -36,9 +36,6 @@ form > input[type="file"]::file-selector-button { display: none; } - form > label { - flex-shrink: 0; - } summary::marker { content: "" } @@ -74,10 +71,10 @@

-
- + - + +
{#if form} {#if form.success}