feat(desec): keep the typed slug across the registration flow

A slug typed into the deSEC form was lost when the form re-rendered after a
201 redirect (e.g. on the awaiting-verification step), forcing the user to
re-enter it. Persist the requested slug in the AIO config when register()
runs and pre-fill the slug input from it on every step, then clear it once a
domain is set. Stored in configuration.json rather than a URL parameter so it
survives the multi-step flow without leaking into the iframe address.

Signed-off-by: Simon L. <szaimen@e.mail.de>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Simon L.
2026-06-22 16:04:36 +02:00
co-authored by Claude Opus 4.8
parent 0d2ce61af3
commit 7e50969d02
4 changed files with 20 additions and 3 deletions
+10
View File
@@ -213,6 +213,16 @@ class ConfigurationManager
set { $this->set('desec_email', $value); }
}
/**
* The subdomain slug the user last requested. Persisted across the multi-step
* registration flow so the slug input can be pre-filled when the form re-renders
* (e.g. after email verification). Not a secret; cleared once a domain is set.
*/
public string $desecSlug {
get => $this->get('desec_slug', '');
set { $this->set('desec_slug', $value); }
}
/**
* Base URL of the deSEC API. Configurable via the 'desec_api_base' config key
* (configuration.json) only — intentionally NOT an environment variable — so the