Skip to content

Commit 9badfa9

Browse files
HaleyMiguelottonomy
authored andcommitted
Passkey deletion implementation & use:enhance fix
1 parent 225afde commit 9badfa9

2 files changed

Lines changed: 44 additions & 41 deletions

File tree

src/routes/settings/+page.server.ts

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -100,20 +100,26 @@ export const actions: Actions = {
100100
},
101101

102102
//hm: cant delete off of device for security reasons
103-
// deletePasskey: async ({ locals, cookies, request, params }) => {
104-
// const requestData = await request.formData();
105-
// const createPasskey = requestData.get('newPasskey')?.toString() ?? "";
106-
107-
// let data: any = 9
108-
// const passkeyDeleted = await prisma.passkey.delete({
109-
// where: {
110-
// id: "bc7787a7-702d-42e4-8fad-27424fad2b8a"
111-
// }
112-
113-
// })
114-
// return {
115-
// success: true,
116-
// passkey: passkeyDeleted
117-
// };
118-
// }
103+
deletePasskey: async ({ locals, cookies, request, params }) => {
104+
const requestData = await request.formData();
105+
const passkeyID = requestData.get('delpasskeyID')?.toString() ?? "";
106+
107+
console.log("LOOKIT: " + passkeyID)
108+
109+
if (passkeyID) {
110+
const passkeyDeleted = await prisma.passkey.delete({
111+
where: {
112+
id: passkeyID
113+
}
114+
115+
})
116+
return {
117+
success: true,
118+
passkey: passkeyDeleted
119+
};
120+
121+
}
122+
123+
return fail(500, {message: passkeyID});
124+
}
119125
};

src/routes/settings/+page.svelte

Lines changed: 22 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
import { tick } from 'svelte';
1616
import { notifications, Notification } from '$lib/stores/notificationStore';
1717
import * as m from '$lib/i18n/messages';
18-
18+
1919
export let data: PageData;
2020
2121
const noErrors: { [key: string]: string | null } = {
@@ -50,7 +50,8 @@
5050
identifierVisibility:
5151
data.session?.user?.identifiers.find((a) => true)?.visibility ?? 'COMMUNITY',
5252
defaultVisibility: data.session?.user?.defaultVisibility ?? 'COMMUNITY',
53-
newPasskey: ''
53+
newPasskey: '',
54+
delpasskeyID: ''
5455
};
5556
5657
let modalTitle = '';
@@ -127,7 +128,7 @@
127128
128129
if (form) {
129130
await tick();
130-
form.submit();
131+
form.requestSubmit();
131132
}
132133
133134
if(userVerified) {
@@ -145,31 +146,24 @@
145146
};
146147
let errorMessage = '';
147148
148-
const addPasskey = () => {
149-
finished = true;
150-
151-
return ({ result }: { result: ActionResult }) => {
152-
if (result.type === 'error') errorMessage = result.error?.message;
153-
else if (result.type === 'success' && result.data?.passkey) {
154-
const data = result.data;
155-
console.log(data);
156-
} else {
157-
alert("There's an issue: " + errorMessage);
158-
}
159-
};
160-
};
161-
162149
let delKey = false;
163150
let verifyDelete = false;
164151
165-
const deletePasskey = () => {
152+
const deletePasskey = (passkey_id: string) => {
166153
delKey = true;
167-
154+
formData.delpasskeyID = passkey_id;
168155
};
169156
170-
const deletePasskeyHelper = () => {
157+
const deletePasskeyHelper = async () => {
158+
159+
const form = document.getElementById('delPassKeyForm') as HTMLFormElement;
171160
161+
if (form) {
162+
await tick();
163+
form.requestSubmit();
164+
}
172165
166+
formData.delpasskeyID = "";
173167
alert('Passkey deleted');
174168
verifyDelete = false;
175169
delKey = false;
@@ -291,7 +285,7 @@
291285
{passkeyJSON(passkey.json, 'timestamp')}
292286
</td>
293287
<td class="py-4">
294-
<Button buttonType="button" on:click={() => deletePasskey()} submodule="secondary"
288+
<Button buttonType="button" on:click={() => deletePasskey(passkey.id)} submodule="secondary"
295289
>Delete</Button
296290
>
297291
</td>
@@ -342,10 +336,13 @@
342336
actions={[]}
343337
>
344338

339+
<form id="delPassKeyForm" action="?/deletePasskey" method="POST" use:enhance>
340+
<Button buttonType="button" on:click={() => deletePasskeyHelper()} submodule="primary">
341+
Yes, I'm sure
342+
</Button>
343+
<input id="settings_passkeydelete" name="delpasskeyID" bind:value={formData.delpasskeyID}/>
344+
</form>
345345

346-
<Button buttonType="button" on:click={() => deletePasskeyHelper()} submodule="primary"
347-
>Yes, I'm sure</Button
348-
>
349346
<Button buttonType="button" on:click={() => (delKey = false)} submodule="primary">No, take me back</Button>
350347
</Modal>
351348

@@ -358,7 +355,7 @@
358355
}}
359356
actions={[]}
360357
>
361-
<form id="newPassKeyForm" action="?/savePasskey" method="POST" use:enhance>
358+
<form id="newPassKeyForm" action="?/savePasskey" method="POST" use:enhance>
362359
<button type="submit" class="hidden" id="hiddenSubmit">Submit</button>
363360
<input id="settings_passkeycreate" name="newPasskey" value={formData.newPasskey} />
364361

0 commit comments

Comments
 (0)