JOIN innerhalb einer Tabelle

Ja das mit den Functions habe ich eigentlich gar nicht verstanden. Ich dachte du hast als User Zugriff auf Seiten und die haben, eventuell, Funktionen oder auch nicht. Aber das weist du besser :)
 
Werbung:
Du liegst fast richtig.
Die Nutzer haben Zugriff auf bestimmte Seiten, z.B. Empfänger verwalten.
Dieser Seite sind Funktionen zugeordnet:
Empfänger hinzufügen / löschen / bearbeiten.

Alle verfügbaren Funktionen stehen in einer REST Api zur Verfügung.
Mit der SQL Abfrage prüfe ich nun in der Api, ob der Nutzer Zugriff auf die Seite "Empfänger verwalten" hat und somit die oben genannten Funktionen nutzen darf.
 
Aber dann wäre doch eine Seite ohne Funktion auch abrufbar und du müsstest auch irgendwo prüfen ob der User auf die Seite (ohne Funktionen) Zugriff hat.
 
Das wird auch geprüft, allerdings nicht mit der SQL Abfrage hier.
Hierfür lasse ich mir einfach die Daten aus der Users_Sites und Users_Roles geben und mir dann rekursiv nach Oben aus der Sites Tabelle alle Oberpunkte. Ich bekomme dann ein hierarchisches Array raus, mit welchem ich dann z.B. das Menü zusammen bauen kann. Oder eben in einer "header" Datei, welche vor jedem Seitenaufruf eingebunden ist, überprüfen ob die Seite wirklich im Array vorhanden ist.
Damit nicht bei jedem Seiten/Funktionsaufruf die Daten aus der DB neu gezogen werden müssen, mache ich das einmal beim Einloggen und speichere dieses in eine Session-Variable. Sollte dann ein Nutzer eine Funktion während der aktiven Session bekommen, muss er sich eben einmal neu einloggen.
 
Werbung:
Du könntest es aber theoretisch mit dieser Abfrage auch abrufen und in beiden Fällen in der Session als Variable speichern, ist dann einheitlicher.

Aber ich kann eigentlich nur DBs, vielleicht hat es ja auch Vorteile :)
 
Zurück
Oben