| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- <?php
- declare(strict_types=1);
- $root = dirname(__DIR__);
- return [
- 'project_name' => 'Feuerwehr Mitgliedsantrag',
- 'base_url' => '/',
- 'contact_email' => 'kontakt@example.org',
- 'api_messages' => [
- 'common' => [
- 'method_not_allowed' => 'Method not allowed',
- 'invalid_csrf' => 'Ungültiges CSRF-Token.',
- 'request_blocked' => 'Anfrage blockiert.',
- 'invalid_email' => 'Bitte gültige E-Mail eingeben.',
- ],
- 'load_draft' => [
- 'rate_limited' => 'Zu viele Anfragen. Bitte später erneut versuchen.',
- 'already_submitted' => 'Für diese E-Mail liegt bereits ein abgeschlossener Antrag vor.',
- ],
- 'save_draft' => [
- 'rate_limited' => 'Zu viele Speicheranfragen.',
- 'already_submitted' => 'Für diese E-Mail wurde bereits ein Antrag abgeschlossen.',
- 'lock_error' => 'Speichern derzeit nicht möglich.',
- 'blocked_fallback' => 'Bereits abgeschlossen.',
- 'success' => 'Entwurf gespeichert.',
- ],
- 'submit' => [
- 'rate_limited' => 'Zu viele Anfragen.',
- 'already_submitted' => 'Für diese E-Mail liegt bereits ein abgeschlossener Antrag vor.',
- 'upload_error' => 'Fehler bei Uploads.',
- 'validation_error' => 'Bitte Pflichtfelder prüfen.',
- 'lock_error' => 'Abschluss derzeit nicht möglich.',
- 'failure' => 'Abschluss fehlgeschlagen.',
- 'success' => 'Ihr Antrag wurde erfolgreich empfangen. Bei Fragen kontaktieren Sie %contact_email%.',
- ],
- 'reset' => [
- 'rate_limited' => 'Zu viele Löschanfragen. Bitte später erneut versuchen.',
- 'already_submitted' => 'Für diese E-Mail liegt bereits ein abgeschlossener Antrag vor. Ein Zurücksetzen ist nicht möglich.',
- 'delete_error' => 'Daten konnten nicht gelöscht werden.',
- 'success' => 'Gespeicherte Daten wurden gelöscht.',
- ],
- 'delete_upload' => [
- 'invalid_upload_entry' => 'Ungültiger Upload-Eintrag.',
- 'rate_limited' => 'Zu viele Löschanfragen. Bitte später erneut versuchen.',
- 'already_submitted' => 'Für diese E-Mail liegt bereits ein abgeschlossener Antrag vor.',
- 'draft_not_found' => 'Kein Entwurf gefunden.',
- 'upload_not_found' => 'Upload nicht gefunden.',
- 'delete_error' => 'Upload konnte nicht gelöscht werden.',
- 'success' => 'Upload gelöscht.',
- ],
- 'upload_preview' => [
- 'invalid_upload_entry' => 'Ungültiger Upload-Eintrag.',
- 'rate_limited' => 'Zu viele Anfragen. Bitte später erneut versuchen.',
- 'draft_not_found' => 'Entwurf nicht gefunden.',
- 'upload_not_found' => 'Upload nicht gefunden.',
- 'file_not_found' => 'Datei nicht gefunden.',
- ],
- ],
- 'start' => [
- 'intro_text' => 'Bitte E-Mail eingeben. Bestehende Entwürfe werden automatisch geladen.',
- ],
- 'disclaimer' => [
- 'title' => 'Wichtiger Hinweis',
- 'text' => "Bitte lesen Sie diesen Hinweis vor Beginn sorgfaeltig.\n\nMit dem Fortfahren bestaetigen Sie, dass Ihre Angaben vollstaendig und wahrheitsgemaess sind.\nIhre Daten werden ausschliesslich zur Bearbeitung des Mitgliedsantrags verwendet.",
- 'accept_label' => 'Hinweis gelesen, weiter zum Antrag',
- ],
- 'address_disclaimer' => [
- 'text' => 'Bitte geben Sie Ihre vollstaendige Meldeadresse inklusive Hausnummer an.',
- ],
- 'retention' => [
- 'draft_days' => 14,
- 'submission_days' => 90,
- ],
- 'uploads' => [
- 'max_size' => 10 * 1024 * 1024,
- 'allowed_extensions' => ['pdf', 'jpg', 'jpeg', 'png', 'webp'],
- 'allowed_mimes' => [
- 'application/pdf',
- 'image/jpeg',
- 'image/png',
- 'image/webp',
- ],
- ],
- 'rate_limit' => [
- 'enabled' => true,
- 'requests' => 30,
- 'window_seconds' => 300,
- ],
- 'verification' => [
- 'required' => true,
- 'inactivity_seconds' => 3600,
- 'otp_ttl_seconds' => 600,
- 'otp_attempt_limit' => 5,
- 'resend_cooldown_seconds' => 60,
- ],
- 'admin' => [
- // Feste Zugangsdaten als Tabelle (hardcoded).
- // Hash mit: php -r "echo password_hash('DEIN-PASSWORT', PASSWORD_DEFAULT), PHP_EOL;"
- // Alternativ: Online Tool: https://bcrypt-generator.com/
- 'credentials' => [
- [
- 'username' => 'admin',
- 'password_hash' => '',
- ],
- ],
- 'session_timeout_seconds' => 3600,
- ],
- 'storage' => [
- 'drafts' => $root . '/storage/drafts',
- 'submissions' => $root . '/storage/submissions',
- 'uploads' => $root . '/storage/uploads',
- 'rate_limit' => $root . '/storage/rate_limit',
- 'logs' => $root . '/storage/logs',
- 'locks' => $root . '/storage/locks',
- ],
- ];
|