**Neue Features:** 1. Container-Level Blocking: Admin kann einzelne Container blockieren/entsperren 2. User-Block Cascading: Wenn User gesperrt wird, werden automatisch alle seine Container blockiert 3. Launch-Protection: Blockierte Container können vom User nicht gestartet werden 4. Container-Verwaltungs-Tab im Admin-Dashboard mit Block/Unblock UI 5. Blocked-Status auf User-Dashboard mit visueller Markierung (rot) 6. Bulk-Operations für Container (Block/Unblock) **Backend-Änderungen (admin_api.py):** - GET /api/admin/users: Liefert nun auch Container-Liste mit is_blocked Status - POST /api/admin/containers/<id>/block: Blockiert einzelnen Container - POST /api/admin/containers/<id>/unblock: Entsperrt einzelnen Container - POST /api/admin/containers/bulk-block: Blockiert mehrere Container - POST /api/admin/containers/bulk-unblock: Entsperrt mehrere Container - POST /api/admin/users/<id>/block: Cascade-Blockade aller Container (Phase 7) **Backend-Änderungen (api.py):** - GET /api/user/containers: Liefert is_blocked und blocked_at Felder - POST /api/container/launch/<type>: Launch-Protection prüft is_blocked Flag **Database-Änderungen (models.py):** - UserContainer: Füge is_blocked, blocked_at, blocked_by Spalten hinzu - Relationships für Blocker-Admin **Frontend-Änderungen:** - Admin-Dashboard: Neuer "Container-Verwaltung" Tab mit Grid-View - Admin-Dashboard: Block/Unblock Buttons pro Container - Admin-Dashboard: Bulk-Operations für Container-Selection - User-Dashboard: Blocked-Badge und Blocked-Beschreibung in Container-Cards - User-Dashboard: Disabled Button wenn Container blockiert - User-Dashboard: Toast-Benachrichtigung bei Launch-Protection **Migration:** - Neue Datei: migrate_container_blocking.py für Database-Setup Verwendung: python migrate_container_blocking.py **Sicherheit:** - Blockierte Container werden mit stop_container() gestoppt - Lazy-Init des ContainerManager für robuste Error-Handling - Separate Admin-Endpoints mit @admin_required() Decorator - Audit-Logging aller Block/Unblock-Operationen **Testing-Punkte:** - User-Block blockiert alle Container? ✓ Cascading - Container-Block wird auf User-Dashboard angezeigt? ✓ is_blocked prüfen - Launch-Protection funktioniert? ✓ 403 Error bei is_blocked - Admin-Container-Tab funktioniert? ✓ Grid-View mit Search - Bulk-Operations funktionieren? ✓ Multiple Selection + Confirm Fixes: #0 (Phase 7 Implementation) Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| public | ||
| src | ||
| .env.example | ||
| .gitignore | ||
| components.json | ||
| Dockerfile | ||
| next.config.mjs | ||
| package-lock.json | ||
| package.json | ||
| postcss.config.mjs | ||
| tailwind.config.ts | ||
| tsconfig.json | ||