# RBAC Build Progress — LeoCRM ## Letztes Update: 2026-07-29 01:23 CEST ## Sprint 1 — Fundament (14h) ### Erledigt ✅ - [x] EntityPermission Model erstellt (`app/models/entity_permission.py`) - Generische Tabelle für alle Entities - principal_type: user | group | role | guest - permission_level: none | read | write | admin | delete - expires_at für zeitlich begrenzte Freigaben - created_by für Audit-Trail - Indexes auf entity, principal, tenant, expires_at - [x] OwnedMixin erstellt (`app/models/owned_mixin.py`) - owner_id Feld (nullable, FK → users.id, ON DELETE SET NULL) - Index auf owner_id - Kann auf jedes Model angewendet werden ### In Bearbeitung 🔄 - [ ] Migration 0049: entity_permissions Tabelle - [ ] Migration 0050: owner_id auf allen Models - [ ] OwnedMixin auf alle Models anwenden - [ ] EntityPermission in models/__init__.py registrieren - [ ] Universeller Permission Service - [ ] Universelle Permission API (5 Endpoints) - [ ] Redis-Cache für Entity-Permissions - [ ] PostgreSQL RLS Policies + set_user_context() - [ ] Rate Limiting auf Permission-Änderungen - [ ] Folder ACLs migrieren (Migration 0051) ### Noch offen ⬜ - [ ] Sprint 2-23 (siehe ENTERPRISE_RBAC_PLAN.md) --- ## Modelle erstellt in dieser Session | Datei | Beschreibung | |-------|-------------| | app/models/entity_permission.py | Universelle ACL-Tabelle für alle Entities | | app/models/owned_mixin.py | Mixin für owner_id auf jedem Model | | app/models/contact_folder_permission.py | Folder-spezifische Permissions (wird migriert) | ## Services erstellt in dieser Session | Datei | Beschreibung | |-------|-------------| | app/services/contact_folder_permission_service.py | Folder Permission Service (wird migriert) | ## Routes erstellt in dieser Session | Datei | Beschreibung | |-------|-------------| | app/routes/contact_folder_permissions.py | Folder Permission CRUD API | ## Frontend erstellt in dieser Session | Datei | Beschreibung | |-------|-------------| | frontend/src/components/contacts/FolderPermissionDialog.tsx | Permission Dialog UI | | frontend/src/api/contactFolders.ts | Folder Permission API + Typen | | frontend/src/api/contacts.ts | Folder Permission Hooks | | frontend/src/components/contacts/ContactFolderTree.tsx | Menu-Eintrag 'Rechte' integriert | ## Migrationen | # | Beschreibung | Status | |---|-------------|:---:| | 0048 | contact_folder_permissions Tabelle | ✅ Ausgeführt | | 0049 | entity_permissions Tabelle | ⬜ Geplant | | 0050 | owner_id auf allen Tabellen | ⬜ Geplant | | 0051 | Folder ACLs → entity_permissions | ⬜ Geplant | ## Git Commits | Hash | Beschreibung | |------|-------------| | cc021cd | feat: folder permissions (ACLs) - share folders with users/groups |