16 lines
1.0 KiB
Markdown
16 lines
1.0 KiB
Markdown
# Sicherheitskonzept (RLS - Row Level Security)
|
|
|
|
RLS ist auf Datenbankebene in Postgres implementiert und erzwingt Datenisolierung:
|
|
|
|
- **Unternehmen (`companies`)**: Authentifizierte Benutzer dürfen nur die Unternehmen lesen.
|
|
- **Endkunden (`end_customers`)**:
|
|
- `USING (partner_id = (SELECT company_id FROM public.users WHERE id = auth.uid()))`
|
|
- Partner sehen und modifizieren nur Endkunden, deren `partner_id` mit der `company_id` des angemeldeten Benutzers übereinstimmt.
|
|
- **Bestellungen (`orders`)**:
|
|
- `USING (company_id = (SELECT company_id FROM public.users WHERE id = auth.uid()))`
|
|
- Partner sehen und modifizieren nur Bestellungen, die ihrer Company zugewiesen sind (sie müssen einer Company zugeordnet sein).
|
|
- Jede Bestellung wird bei der Erstellung automatisch der Company des Erstellers zugewiesen.
|
|
- Admins haben uneingeschränkten Zugriff und können Bestellungen nachträglich anderen Companies zuweisen.
|
|
- **Lizenzen (`licenses`)**:
|
|
- Partner sehen nur Lizenzen von Endkunden, die ihrer Company zugeordnet sind.
|