Files
leocrm/RBAC_PROGRESS.md
T

2.7 KiB

RBAC Build Progress — LeoCRM

Letztes Update: 2026-07-29 01:23 CEST

Sprint 1 — Fundament (14h)

Erledigt

  • 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
  • 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