dev: Rollenprüfung BN-02 auf Live erledigt, Juli-Abfrage korrigiert
Nachher-Liste vom 13.10.2026: ein Admin-Konto mit Passkey und TOTP, Super-Admin, keine Editoren, Zugänge außerhalb der Anwendung nur beim Inhaber. Versandfassung D3 und Klärung U13 nachgezogen. Tinker-Befehl für die Juli-Kampagnen nutzt status->value (Enum). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
4bf22a81d0
commit
2d7e32b13c
5 changed files with 23 additions and 4 deletions
|
|
@ -84,7 +84,7 @@ Tritt im Server oder im Browser ein technischer Fehler auf, geht ein Fehlerberic
|
|||
- **Passkeys:** öffentlicher Schlüssel, technische Kennungen des Authentifikators, vom Nutzer vergebener Name, Zeitpunkt der letzten Nutzung.
|
||||
- **Anmeldung mit Google:** Google übermittelt Name, E-Mail-Adresse und Google-Kennung; gespeichert wird die Kennung. Google Ireland Ltd.; Übermittlung an Google LLC (USA) möglich, DPF.
|
||||
- **Abmeldung anderer Geräte:** nur ein Zeitstempel am Konto.
|
||||
- **Administratoren:** Bestand laut Datenbank (Stand 07.10.2026): ein aktives Betriebskonto mit Admin-Rolle und Passkey, ein aktives Altkonto mit Admin-Rolle (letzte Anmeldung 2012), ein aktives Altkonto mit Super-Admin-Merker und importierten, nie benutzten API-Schlüsseln, drei gesperrte Altkonten mit Admin-Rolle, keine Editoren. Die Altkonten verlieren alle Rechte, Schlüssel und Sitzungen und werden gesperrt oder gelöscht. Danach hat nur das Betriebskonto Admin-Zugriff, mit nicht öffentlicher Login-Adresse. Zweiter Faktor für Admins ist Pflicht. Datierte Liste vorher und nachher: Anlage 7 (BN-02) [Datum und Ergebnis nach Ausführung eintragen].
|
||||
- **Administratoren:** Bestand laut Datenbank (Stand 07.10.2026): ein aktives Betriebskonto mit Admin-Rolle und Passkey, ein aktives Altkonto mit Admin-Rolle (letzte Anmeldung 2012), ein aktives Altkonto mit Super-Admin-Merker und importierten, nie benutzten API-Schlüsseln, drei gesperrte Altkonten mit Admin-Rolle, keine Editoren. Die Altkonten haben alle Rechte, Schlüssel und Sitzungen verloren und sind gesperrt oder gelöscht. Zweiter Faktor für Admins ist Pflicht. Stand 13.10.2026 nach der Bereinigung: ein Konto mit Zugang zum Admin-Bereich, mit Passkey und Authenticator-App; keine Editoren; Zugänge zu Server und Hosting nur beim Inhaber (Anlage 7, BN-02).
|
||||
|
||||
### D4 — E-Mail-Zustellung
|
||||
|
||||
|
|
|
|||
|
|
@ -568,7 +568,7 @@ Als Information, keine Frage: F1, F3-Fristen, F4, F6, F7, F11, die Entscheidunge
|
|||
| U10 | Boost-Label „Gebuchte Platzierung“ und Tooltip; Preisseite-Satz. **Im Code seit 13.10.2026** (Tooltip am Desktop, Tipp auf Mobil, Screenreader-Text; „Top-Auswahl“ → „Aktuell“; Admin-Aktion „Boost beenden“), Deploy offen | Abschnitt 6 |
|
||||
| U11 | Admin-Upload nur für Meldungen mit Konto, Link an Konto-E-Mail; Self-Service-Bild-Upload nur mit Konto; Rolle und Vertragspartner im Protokoll; Einreichungsnachweis zum Einreichungszeitpunkt (RP-05) | A3 |
|
||||
| U12 | Erstattungs-Aktion im Admin; Hilfeseite | Abschnitt 7 |
|
||||
| U13 | Altkonten bereinigen: fünf Altkonten mit Admin-Rolle bzw. Super-Admin-Merker verlieren alle Rechte; Ablauf und Befehl `audit:admins` in `nachweise/bn-02-ablauf.md` | sofort |
|
||||
| ~~U13~~ | ~~Altkonten bereinigen~~ — **erledigt 13.10.2026** auf Live: ein Admin-Konto mit Passkey und TOTP, keine Editoren (`nachweise/bn-02-berechtigungen-2026-10-13.md`) | sofort |
|
||||
| U14 | Alte Backups prüfen und bereinigen (Roadmap 1.5) | A4 |
|
||||
| U15 | Umami-Rohdatenfrist 13 Monate | F6 |
|
||||
| U16 | Betriebsnachweise BN-01 bis BN-09 aus der Korrekturdatei liefern (Release und Schalter je Host, Berechtigungen inkl. Editor-Rollen, Backupinventar, externer Löschstand, Instanzfristen, Verträge und DPF-Status, OpenAI-Einstellungen, Juli-Mailtexte mit Versandbeleg, Lauf- und Restore-Protokolle) | alle |
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ Status: ✅ liegt vor · ◐ aus Code/Daten vorbelegt, auf Live bestätigen ·
|
|||
|
||||
| Datei | Status | Hinweis |
|
||||
|---|---|---|
|
||||
| `bn-02-berechtigungen-2026-10-XX.md` | ☐ | Vorher/Nachher-Liste mit `php artisan audit:admins`; Ablauf in [`bn-02-ablauf.md`](bn-02-ablauf.md) |
|
||||
| [`bn-02-berechtigungen-2026-10-13.md`](bn-02-berechtigungen-2026-10-13.md) | ✅ | 1 Admin-Konto mit Passkey und TOTP, keine Editoren; Ablauf in [`bn-02-ablauf.md`](bn-02-ablauf.md) |
|
||||
| `boost-01-startseite-desktop.png` | ☐ | U10 ist im Code; erst nach dem Deploy aufnehmen. Boost danach unter Admin ▸ Pressemitteilung ▸ „Boost beenden“ beenden |
|
||||
| `boost-02-branchenseite-desktop.png` | ☐ | dito |
|
||||
| `boost-03-startseite-mobil.png` | ☐ | 390 px |
|
||||
|
|
|
|||
19
dev/rechtliches/nachweise/bn-02-berechtigungen-2026-10-13.md
Normal file
19
dev/rechtliches/nachweise/bn-02-berechtigungen-2026-10-13.md
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
# Berechtigungen, Stand 13.10.2026 12:27
|
||||
|
||||
**Erhoben auf Live** mit `php artisan audit:admins` (v1.9.0), nach der Bereinigung laut [bn-02-ablauf.md](bn-02-ablauf.md). Eine Vorher-Liste wurde auf Live nicht gezogen; der Ausgangsbestand steht in bn-02-ablauf.md (Kopie der Live-Datenbank vom 07.10.2026): sechs Konten mit Rechten über den Kundenbereich hinaus, davon drei mit Admin-Zugang und eines mit zweitem Faktor.
|
||||
|
||||
**Ausgeführt am 13.10.2026:** Betriebskonto mit Super-Admin-Merker und zusätzlich TOTP; alter Entwicklerzugang gesperrt, ohne Rechte, Schlüssel und Sitzungen, Adresse durch Zufallsadresse ersetzt; Altkonto ohne Daten gelöscht; drei gesperrte Altkonten von `admin` auf `customer`.
|
||||
|
||||
Stand 13.10.2026: 1 Konto mit Zugang zum Admin-Bereich, davon 1 mit zweitem Faktor (TOTP oder Passkey), 1 Super-Admin, 0 Editor-Konten. Gelistet sind 1 Konten mit Rechten über den Kundenbereich hinaus, einschließlich gesperrter und gelöschter.
|
||||
|
||||
| ID | E-Mail | Rollen | Super-Admin | Aktiv | Gelöscht | Admin-Zugang | TOTP | Passkeys | Letzte Anmeldung | API-Tokens | Sitzungen zuletzt widerrufen |
|
||||
|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||
| 1 | …@pressekonto.com | admin | ja | ja | nein | ja | ja | 1 | 13.10.2026 12:12 | 0 | – |
|
||||
|
||||
Admin-Zugang = aktiv und Super-Admin oder Rolle `admin`/`editor` (`User::canAccessAdmin()`). Sitzungen liegen in Redis und sind je Konto nicht zählbar; ein Widerruf beendet alle älteren Sitzungen.
|
||||
|
||||
**Zugänge außerhalb der Anwendung** (nur Betreiber):
|
||||
|
||||
- Ploi (darüber SSH)
|
||||
- Hetzner-Konsole
|
||||
- SSH-Schlüssel der Entwicklungsrechner (Mac mini Server, Mac Studio)
|
||||
|
|
@ -30,7 +30,7 @@ Die Regel steht in `app/Services/Newsletter/CampaignRecipients.php`. Sie gilt f
|
|||
```bash
|
||||
php artisan tinker --execute '
|
||||
foreach (App\Models\NewsletterCampaign::query()->orderBy("id")->get() as $c) {
|
||||
echo $c->id." | ".$c->status." | ".$c->subject." | total ".$c->recipients_total." | sent ".$c->sent_count." | failed ".$c->failed_count." | skipped ".$c->skipped_count." | ".$c->sent_at.PHP_EOL;
|
||||
echo $c->id." | ".$c->status->value." | ".$c->subject." | total ".$c->recipients_total." | sent ".$c->sent_count." | failed ".$c->failed_count." | skipped ".$c->skipped_count." | ".$c->sent_at.PHP_EOL;
|
||||
echo " Protokollzeilen: ".json_encode(DB::table("newsletter_campaign_recipients")->where("newsletter_campaign_id", $c->id)->selectRaw("status, count(*) n")->groupBy("status")->pluck("n", "status")).PHP_EOL;
|
||||
}'
|
||||
```
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue