Migrate omsorgapp to browser SPA, add Docker/CI build setup
Docker-Images bauen und veröffentlichen / build (, omsorgCore/Dockerfile, omsorgcore) (push) Successful in 3s
Docker-Images bauen und veröffentlichen / build (, omsorgWeb/Dockerfile, omsorgweb) (push) Failing after 4s
Docker-Images bauen und veröffentlichen / build (VITE_OMSORG_CORE_URL=${{ vars.OMSORG_CORE_PUBLIC_URL }}, omsorgapp/Dockerfile, omsorgapp) (push) Successful in 3s
Docker-Images bauen und veröffentlichen / build (, omsorgCore/Dockerfile, omsorgcore) (push) Successful in 3s
Docker-Images bauen und veröffentlichen / build (, omsorgWeb/Dockerfile, omsorgweb) (push) Failing after 4s
Docker-Images bauen und veröffentlichen / build (VITE_OMSORG_CORE_URL=${{ vars.OMSORG_CORE_PUBLIC_URL }}, omsorgapp/Dockerfile, omsorgapp) (push) Successful in 3s
- omsorgapp: drop Electron, run as a plain Vite/React browser app; refresh token moves to an HttpOnly cookie (omsorgCore), CORS added for the new browser origin, document download/preview switched to Blob-based browser APIs. - Add Dockerfiles for omsorgCore, omsorgapp, and omsorgWeb, a docker-compose.yml wiring Postgres/MySQL/all three apps together, and a Gitea Actions workflow that builds and pushes images to the repo's container registry on push to main and on version tags. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
e9e96a57dc
commit
598dfcd38a
@@ -20,10 +20,21 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
||||
if ($username === '') {
|
||||
$error = 'Bitte Benutzername eingeben.';
|
||||
} else {
|
||||
omsorgcore_forgot_password_request(_omsorgcore_config(), $username);
|
||||
// Bewusst immer weiter zu Schritt 2, unabhängig vom Ergebnis - kein Rückschluss darauf,
|
||||
// ob der Username existiert (siehe PasswordResetService.RequestResetAsync in omsorgCore).
|
||||
$step = 'verify';
|
||||
$result = omsorgcore_forgot_password_request(_omsorgcore_config(), $username);
|
||||
$status = $result['ok'] ? ($result['data']['status'] ?? null) : null;
|
||||
|
||||
if ($status === 'email_unavailable') {
|
||||
// Einzige Ausnahme vom "immer weiter"-Prinzip unten: der Code wurde zwar angelegt,
|
||||
// aber die E-Mail kam nachweislich nicht raus (z.B. SMTP down) - kein Sinn, den Nutzer
|
||||
// auf eine Code-Eingabe warten zu lassen, die nie ankommt. Kein zusätzliches
|
||||
// Enumeration-Risiko: "sent" vs. "cannot_reset" unterscheidet bereits, ob der Username
|
||||
// existiert (siehe AuthController.ForgotPasswordRequest in omsorgCore).
|
||||
$error = 'Der E-Mail-Versand ist gerade nicht verfügbar. Bitte später erneut versuchen oder einen Administrator kontaktieren.';
|
||||
} else {
|
||||
// Bewusst immer weiter zu Schritt 2, unabhängig vom Ergebnis - kein Rückschluss darauf,
|
||||
// ob der Username existiert (siehe PasswordResetService.RequestResetAsync in omsorgCore).
|
||||
$step = 'verify';
|
||||
}
|
||||
}
|
||||
} elseif ($step === 'verify') {
|
||||
$username = trim($_POST['username'] ?? '');
|
||||
|
||||
Reference in New Issue
Block a user