feat: Add generation of keys to admin page

This commit is contained in:
Marie 2025-02-07 06:00:49 +01:00
parent d6c4b728df
commit c889948f95
No known key found for this signature in database
GPG key ID: 7ADF6C9CD9A28555
9 changed files with 142 additions and 0 deletions

View file

@ -138,6 +138,8 @@ SPDX-License-Identifier: AGPL-3.0-only
<template #label>Private key<span v-if="serviceWorkerForm.modifiedStates.swPrivateKey" class="_modified">{{ i18n.ts.modified }}</span></template>
<template #prefix><i class="ti ti-key"></i></template>
</MkInput>
<MkButton primary @click="genKeys">{{ i18n.ts.genKeys }}</MkButton>
</template>
</div>
</MkFolder>
@ -434,6 +436,23 @@ function chooseProxyAccount() {
});
}
async function genKeys() {
if (serviceWorkerForm.savedState.swPrivateKey) {
os.confirm({ type: 'warning', title: i18n.ts._genKeysDialog.title, text: i18n.ts._genKeysDialog.text }).then(result => {
if (result.canceled) return;
os.apiWithDialog('admin/gen-vapid-keys', {}).then(res => {
serviceWorkerForm.state.swPublicKey = res.public;
serviceWorkerForm.state.swPrivateKey = res.private;
});
});
} else {
os.apiWithDialog('admin/gen-vapid-keys', {}).then(res => {
serviceWorkerForm.state.swPublicKey = res.public;
serviceWorkerForm.state.swPrivateKey = res.private;
});
}
}
const headerTabs = computed(() => []);
definePageMetadata(() => ({