auth/security: API-Firmenzuordnung nur für Mitglieder oder Allowlist, Google-Vorabübernahme geschlossen, gemeinsamer Login-Abschluss (Umsetzungsaudit 29.09.: R-01, K-04, K-07, K-08, B-10)
- R-01: ApiNewsroomAssignment hängt an eine bestehende Firma nur noch Owner, Mitglieder oder Nutzer aus NEWSROOM_API_ASSIGNMENT_USER_IDS; Pivot mit granted_via = api; Befehl company-memberships:api-assignments (Liste, --remove mit Vorschau) - K-04: OAuth-Verifikation eines offenen Kontos verwirft Passwort, remember_token und Sanctum-Tokens; SessionRevocation + Middleware EnsureSessionIsNotRevoked widerruft alte Sessions (Redis-tauglich) - K-08: LoginCompletion für Passwort, Magic Link und Google — last_login_at und Anmeldemethode auch nach 2FA, Landeziel über die Challenge, Google ohne erzwungenes remember, magic-login ohne guest für eigene Links - B-10: eigener Magic-Link-Zweck image_confirmation (Migration) - K-07: legalAcceptanceVersions #[Locked], Versionswechsel beim Absenden wird abgelehnt, Gate-Abfragen je Request zwischengespeichert Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
3dbc3fa673
commit
1ccb4a8479
29 changed files with 1287 additions and 73 deletions
|
|
@ -31,11 +31,38 @@ return [
|
|||
| claim_links_per_day: Anmeldelinks je Newsroom und Tag. Der Versand geht
|
||||
| an die hinterlegte Firmen-E-Mail, nicht an eine vom Besucher eingegebene
|
||||
| — er darf trotzdem kein Werkzeug werden, fremde Postfächer zu fluten.
|
||||
| Gezählt werden nur versendete Links (R-09, 29.09.2026: 3 → 5, damit
|
||||
| Dritte den Inhaber nicht mit wenigen Klicks für 24 h aussperren).
|
||||
|
|
||||
*/
|
||||
|
||||
'claim' => [
|
||||
'links_per_day' => (int) env('NEWSROOM_CLAIM_LINKS_PER_DAY', 3),
|
||||
'links_per_day' => (int) env('NEWSROOM_CLAIM_LINKS_PER_DAY', 5),
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| API-Zuordnung zu bestehenden Newsrooms (Roadmap 1a.4, Audit R-01)
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Der Alt-Vertrag `POST /service/users/me/companies` hängt eine neue
|
||||
| API-Firma an den bestehenden Newsroom mit derselben Firmen-E-Mail und
|
||||
| demselben Namen. Firmenname und Kontaktadresse stehen öffentlich — die
|
||||
| Zuordnung (samt Mitgliedschaft mit Schreibrecht auf alle Firmen-PMs) gibt
|
||||
| es deshalb nur für freigeschaltete Einlieferer (heute connektar) oder
|
||||
| wenn der Token-Nutzer der Firma ohnehin schon angehört. Alle anderen
|
||||
| bekommen wie vor 1a.4 eine neue Firma.
|
||||
|
|
||||
| allowed_user_ids: kommagetrennte User-IDs (NEWSROOM_API_ASSIGNMENT_USER_IDS).
|
||||
| Standard leer.
|
||||
|
|
||||
*/
|
||||
|
||||
'api_assignment' => [
|
||||
'allowed_user_ids' => array_values(array_unique(array_filter(
|
||||
array_map('intval', explode(',', (string) env('NEWSROOM_API_ASSIGNMENT_USER_IDS', ''))),
|
||||
fn (int $id): bool => $id > 0,
|
||||
))),
|
||||
],
|
||||
|
||||
];
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue