diff --git a/src/lib/common/Stores.svelte b/src/lib/common/Stores.svelte index e5c550d..936d6d5 100644 --- a/src/lib/common/Stores.svelte +++ b/src/lib/common/Stores.svelte @@ -13,11 +13,11 @@ headscaleURLStore.set(localStorage.getItem('headscaleURL') || ''); headscaleAPIKeyStore.set(localStorage.getItem('headscaleAPIKey') || ''); - preAuthHideStore.set(localStorage.getItem('headscalePreAuthHide') || 'false'); + preAuthHideStore.set((localStorage.getItem('headscalePreAuthHide') || 'false') == 'true'); // subscribe to store's state and update the local storage where needed headscaleThemeStore.subscribe((val) => localStorage.setItem('headscaleTheme', val)); - preAuthHideStore.subscribe((val) => localStorage.setItem('headscalePreAuthHide', val)); + preAuthHideStore.subscribe((val) => localStorage.setItem('headscalePreAuthHide', val ? 'true' : 'false')); headscaleURLStore.subscribe((val) => localStorage.setItem('headscaleURL', val)); headscaleAPIKeyStore.subscribe((val) => localStorage.setItem('headscaleAPIKey', val)); diff --git a/src/lib/common/apiFunctions.svelte b/src/lib/common/apiFunctions.svelte index 269a941..b5f73da 100644 --- a/src/lib/common/apiFunctions.svelte +++ b/src/lib/common/apiFunctions.svelte @@ -207,6 +207,38 @@ return headscalePreAuthKey; } + export async function newPreAuthKey(userName: string): Promise { + // variables in local storage + let headscaleURL = localStorage.getItem('headscaleURL') || ''; + let headscaleAPIKey = localStorage.getItem('headscaleAPIKey') || ''; + + // endpoint url for editing users + let endpointURL = '/api/v1/preauthkey'; + + await fetch(headscaleURL + endpointURL, { + method: 'POST', + headers: { + Accept: 'application/json', + Authorization: `Bearer ${headscaleAPIKey}` + }, + body: JSON.stringify({ + namespace: userName + }) + }) + .then((response) => { + if (response.ok) { + return response; + } else { + return response.text().then((text) => { + throw JSON.parse(text).message; + }); + } + }) + .catch((error) => { + throw error; + }); + } + export async function newDevice(key: string, userName: string): Promise { // variables in local storage let headscaleURL = localStorage.getItem('headscaleURL') || ''; @@ -264,4 +296,6 @@ throw error; }); } + + diff --git a/src/lib/common/stores.js b/src/lib/common/stores.js index 977b265..f4976e8 100644 --- a/src/lib/common/stores.js +++ b/src/lib/common/stores.js @@ -11,7 +11,7 @@ export const headscaleThemeStore = writable(''); export const headscaleURLStore = writable(''); export const headscaleAPIKeyStore = writable(''); // stores preauth key preference -export const preAuthHideStore = writable(''); +export const preAuthHideStore = writable(false); // stores user and device data export const headscaleUserStore = writable([new User()]); export const headscaleDeviceStore = writable([new Device()]); \ No newline at end of file diff --git a/src/lib/index/UserCard/PreAuthKeys.svelte b/src/lib/index/UserCard/PreAuthKeys.svelte index 8546049..c0f7c39 100644 --- a/src/lib/index/UserCard/PreAuthKeys.svelte +++ b/src/lib/index/UserCard/PreAuthKeys.svelte @@ -1,21 +1,22 @@