Files
webshop/.agents/skills/grand-functions/references/security.md

1.0 KiB

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.