Browse Source

Skip setup step 4 (host/port) when override vars are set

- Modified setup/2.post.ts to check for WG_HOST and WG_CLIENT_PORT overrides
- If both overrides are set, auto-populate host/port and mark setup as complete
- Updated setup/2.vue to check setup status after user creation and redirect appropriately
- Modified setup middleware to allow access to success page during setup
- Setup now completes after step 2 when host/port are provided via environment variables

Co-authored-by: kaaax0815 <[email protected]>
copilot/add-env-variables-admin-panel
copilot-swe-agent[bot] 8 months ago
parent
commit
516a3fa72c
  1. 10
      src/app/pages/setup/2.vue
  2. 15
      src/server/api/setup/2.post.ts
  3. 7
      src/server/middleware/setup.ts

10
src/app/pages/setup/2.vue

@ -57,7 +57,15 @@ const _submit = useSubmit(
{
revert: async (success) => {
if (success) {
await navigateTo('/setup/3');
// Check if setup is complete (host/port were auto-set from overrides)
const setupStatus = await $fetch('/api/general/setup');
if (setupStatus.done) {
// Setup is complete, redirect to success page
await navigateTo('/setup/success');
} else {
// Continue to step 3
await navigateTo('/setup/3');
}
}
},
noSuccessToast: true,

15
src/server/api/setup/2.post.ts

@ -8,6 +8,19 @@ export default defineSetupEventHandler(2, async ({ event }) => {
await Database.users.create(username, password);
await Database.general.setSetupStep(3);
// If host and port are overridden by environment variables, skip step 4
const host = WG_CLIENT_OVERRIDE_ENV.HOST;
const port = WG_CLIENT_OVERRIDE_ENV.CLIENT_PORT;
if (host && port) {
// Set the host and port from override variables
await Database.userConfigs.updateHostPort(host, port);
// Skip to done
await Database.general.setSetupStep(0);
} else {
// Proceed to step 3 (which leads to step 4)
await Database.general.setSetupStep(3);
}
return { success: true };
});

7
src/server/middleware/setup.ts

@ -9,12 +9,17 @@ export default defineEventHandler(async (event) => {
const { step, done } = await Database.general.getSetupStep();
if (!done) {
const parsedSetup = url.pathname.match(/\/setup\/(\d)/);
const parsedSetup = url.pathname.match(/\/setup\/(\d|migrate|success)/);
if (!parsedSetup) {
return sendRedirect(event, `/setup/1`, 302);
}
const [_, currentSetup] = parsedSetup;
// Allow access to success page during setup
if (currentSetup === 'success') {
return;
}
if (step.toString() === currentSetup) {
return;
}

Loading…
Cancel
Save