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}