No description
Find a file
Kevin Adametz 7c5518dc97 Fix: rollenlose aktive Nutzer -> Backfill-Command + Import-Nachlauf
Problem: Ein eingeloggter Nutzer ohne admin/editor/customer-Rolle wird per
redirectUsersTo auf die Startseite geleitet und haengt dort fest. Ursache
sind Alt-Konten, deren Rollen-Zuweisung nie lief (frueher Import bzw. ein
nach dem User-Insert fehlgeschlagener Rollen-Sync).

- Neues Command users:backfill-portal-role (--role, --dry-run): weist aktiven,
  komplett rollenlosen Nutzern die customer-Rolle zu. api-only-Konten haben
  bereits eine Rolle und bleiben unangetastet; inaktive werden uebersprungen.
- legacy:import ruft den Backfill nach dem User-Schritt automatisch auf
  (self-heal, da updateOrCreate + Rollen-Sync nicht atomar sind).

Analyse-Ergebnis nebenbei: In der aktuellen DB war nur genau 1 echter Fall
(bereits gefixt); die zuvor genannten ~167 waren fast alle api-only (gewollt
ohne Portal-Zugriff). Command laeuft daher jetzt sauber auf 0.

Test: BackfillPortalRoleTest (customer-Zuweisung, Rollen-Erhalt bei
customer/api-only, Ueberspringen Inaktiver, dry-run).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-02 09:23:56 +00:00
.agents/skills 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
.codex 19-05-2026 Rebrand Pressekonto, Hub-Flux UI und Legacy-Media-Migration 2026-05-19 16:36:13 +00:00
.devcontainer 22-05-2026 Optimierung der User und Admin Panels 2026-05-22 11:18:59 +02:00
.github/workflows first commit 2025-10-20 17:53:02 +02:00
_docs create PM v0.5 2026-05-20 19:14:39 +02:00
app Fix: rollenlose aktive Nutzer -> Backfill-Command + Import-Nachlauf 2026-07-02 09:23:56 +00:00
bootstrap Optimierung Phase 0: Korrektheit & Security 2026-06-19 08:09:02 +00:00
config Optimierung 3.5: Kleinere Zentralisierungen (VAT, findByEmail, Waehrung, Provisioning) 2026-06-19 11:14:05 +00:00
database Paket-Vorteile: dynamische, im Admin pflegbare Vorteilsliste je Tarif 2026-06-18 16:36:09 +00:00
dev Doku: 5.4 abgeschlossen + 5.5 Teil-Stand im Entwicklungsplan 2026-07-02 08:44:44 +00:00
docs Doku: Launch-Vorbereitung 18.06. (Status-Widget, WS-8, i18n, Paket-Vorteile) 2026-06-18 17:04:17 +00:00
lang i18n: Auth-Views vollstaendig uebersetzbar machen (Readiness) 2026-06-18 17:00:20 +00:00
public User Panel: Phase-8-Abschluss, Titelbild/Lizenzen/Zeitzonen und KI-Pruef-Pipeline 2026-06-12 08:30:13 +00:00
resources 5.5: <x-password-input> + 6 Auth-Passwortfelder umgestellt 2026-07-02 09:04:26 +00:00
routes Optimierung 4.3/4.4 (Home): Page-Data-Service + Invokable Controller 2026-06-19 12:14:38 +00:00
storage/debugbar first commit 2025-10-20 17:53:02 +02:00
tests Fix: rollenlose aktive Nutzer -> Backfill-Command + Import-Nachlauf 2026-07-02 09:23:56 +00:00
.cursorrules 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
.editorconfig first commit 2025-10-20 17:53:02 +02:00
.env.example Optimierung Phase 0: Korrektheit & Security 2026-06-19 08:09:02 +00:00
.gitattributes first commit 2025-10-20 17:53:02 +02:00
.gitignore 19-05-2026 Rebrand Pressekonto, Hub-Flux UI und Legacy-Media-Migration 2026-05-19 16:36:13 +00:00
.mcp.json 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
AGENTS.md 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
artisan first commit 2025-10-20 17:53:02 +02:00
boost.json 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
CLAUDE.md 19-05-2026 Rebrand Pressekonto, Hub-Flux UI und Legacy-Media-Migration 2026-05-19 16:36:13 +00:00
composer.json WS-6: Google-Login via Laravel Socialite 2026-06-16 10:39:19 +00:00
composer.lock WS-6: Google-Login via Laravel Socialite 2026-06-16 10:39:19 +00:00
docker-compose.yml Multi-Domain-Asset-Infrastruktur: geteilte Vite-Konfiguration und DomainAssetContext 2026-06-12 08:16:09 +00:00
package-lock.json first commit 2025-10-20 17:53:02 +02:00
package.json Multi-Domain-Asset-Infrastruktur: geteilte Vite-Konfiguration und DomainAssetContext 2026-06-12 08:16:09 +00:00
phpstan-baseline.neon 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
phpstan.neon 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
phpunit.xml Veroeffentlichungs-Gate: proaktive Buchungs-Meldung + Schalter test-stabil 2026-06-17 15:32:07 +00:00
pint.json 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
Readme.md 19-05-2026 Rebrand Pressekonto, Hub-Flux UI und Legacy-Media-Migration 2026-05-19 16:36:13 +00:00
setup-new-asset-urls.sh 19-05-2026 Rebrand Pressekonto, Hub-Flux UI und Legacy-Media-Migration 2026-05-19 16:36:13 +00:00
tailwind.portal.config.js Multi-Domain-Asset-Infrastruktur: geteilte Vite-Konfiguration und DomainAssetContext 2026-06-12 08:16:09 +00:00
tailwind.web.config.js 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
vite 13-05-2026 Frontend DEV + HUB 2026-05-13 18:11:03 +02:00
vite.config.js 19-05-2026 Rebrand Pressekonto, Hub-Flux UI und Legacy-Media-Migration 2026-05-19 16:36:13 +00:00
vite.portal.config.js Multi-Domain-Asset-Infrastruktur: geteilte Vite-Konfiguration und DomainAssetContext 2026-06-12 08:16:09 +00:00
vite.shared.js Multi-Domain-Asset-Infrastruktur: geteilte Vite-Konfiguration und DomainAssetContext 2026-06-12 08:16:09 +00:00
vite.web.config.js Multi-Domain-Asset-Infrastruktur: geteilte Vite-Konfiguration und DomainAssetContext 2026-06-12 08:16:09 +00:00

Multi-Domain Laravel-Anwendung

Übersicht

Diese Laravel-Anwendung unterstützt verschiedene Domains mit unterschiedlichen Styles:

Installation

  1. Repository klonen
  2. Abhängigkeiten installieren:
    composer install
    npm install
    
  3. Umgebungsvariablen konfigurieren (siehe .env.example und DOMAINS-CONFIG.md)
  4. Laravel-Anwendung initialisieren:
    php artisan key:generate
    php artisan migrate
    
  5. Assets kompilieren:
    npm run build
    npm run build:admin
    npm run build:web
    

Domain-Konfiguration

Die Domains werden über die .env-Datei konfiguriert. Für detaillierte Anweisungen siehe DOMAINS-CONFIG.md.

Lokaler Entwicklungsserver

php artisan serve

Asset-Kompilierung

Diese Anwendung verwendet Vite mit verschiedenen Konfigurationen:

  • Hauptkompilierung: npm run dev oder npm run build
  • Admin-Assets: npm run build:admin
  • Web-Assets: npm run build:web

Domain-Simulation

Während der Entwicklung können Domains simuliert werden, ohne die Hosts-Datei zu bearbeiten:

  1. In der .env-Datei: DEV_SIMULATE_DOMAIN=true
  2. Gewünschte Domain angeben: DEV_SIMULATED_DOMAIN=landing1.local

Favicons

Um Platzhalter-Favicons für alle konfigurierten Domains zu generieren:

php artisan domains:generate-favicons