Robert R.: Alles unterhalb eines Pfades an ein Skript übergeben

Beitrag lesen

Liebe Mitdenker,
liebe Wissende,
liebe Neugierige,

ja!

Der User erzeugt ein Abfrageergebnis aus einer Datenbank. Es entstehen Datensätze daraus, die in der Sessiondatei gespeichert werden. Darunter sind auch Datensätze, die Verweise auf Files im Dateibaum enthalten. Im View kann ich nun dafür sorgen, dass diese als Link oder neues Requestobjekt (z. B. ein <img>-Tag) ausgegeben werden.

Wenn dieser nun vom Browser aufgelöst wird, soll der Reqest auf das Verzeichnis '/private/images/PATH_TO_THE_RESOURCE.XXX' immer in ein und derselben Datei landen, die dann mittels Request-Path-Zerlegung den öffentlichen Namen der Resource feststellt und dann in der Session guckt, ob dafür eine Translation auf das lokale Verzeichnis (außerhalb der DocRoot!) vorliegt. Dann darf das Skript diese Ressource ausliefern. So erhält ein User immer nur diejenigen Files, auf die er Rechte hat. Die Rechtesteuerung findet im Datenbankmodell statt und ich darf die auch nicht anfassen.

Ich hoffe, ich konnte mein Anliegen nochmal verständlicher rüberbringen.

Es ist sehr umständlich und auch an einer Stelle unlogisch: Wenn das Berechtigungssystem in der DB abgebildet ist, warum müssen dann nach einer Abfrage die Berechtigungen erneut geprüft werden wenn es um Ausliefern von Content geht?

Weil bei HTTP alle Requests immer für sich alleine stehen?

Du kannst das viel einfacher lösen mit einer Routing-Table und einer Klassenbindung an die entsprechenden Ressource:
  URL => Class

Verstehe ich nicht. Woher soll der rquest auf eine <img>-Ressource die Klasse seines Hauptdokumentes kennen, wenn er die nicht aus der Session bekommt?

Es funktioniert jetzt aber so, wie ich mir das vorgestellt habe.

Spirituelle Grüße
Euer Robert

--
Möge der Forumsgeist wiederbelebt werden!