Ich brauch mal nen denk-Ansatz! Aufgabe: In gewissen Contents welche nur für gewisse Kundengruppen zugänglich sind, werden PDFs als Download angeboten! Diese Seiten sind ja für andere KGruppen nicht aufrufbar und wenn ich nen PDF anklicke öffnet sich das in einem neuen Fenster und ich sehe das! Blöd ist aber das wenn ich mich auslogge, ich den Link im Browser aktualisieren kann und alles ist da. Kennt einer nen Ansatz die Files vor dem Aufruf auch Rechte zu prüfen??? Die sind ja direkt über eine URL abrufbar! Ich will nicht oder soll es so machen das die Files nur abgerufen werden können wenn auch die KGruppe passt! Idee?????
In der Regel sollten beim ausloggen die Session vom System aus vernichtet werden. Wenn Gambio diesen Ansatz richtig umgesetzt hat, dann sollte es auch passieren. Jedoch bleiben diese Sessions im Browser Cache hängen und eine Aktualisierung wird in der Regel aus dem Browser Cache geladen auch beim ausloggen und Zurück klicken im Browser gleicher Effekt. Erst beim Aufruf einer neuen Seite, sind deine Sessions quasi nicht mehr gültig. Du musst also einen Weg finden, wie du beim ausloggen auch die Browser Caches löschen kannst. Oder ich habe dich falsch verstanden
Naja, ich hab aber auf nen anderen Rechner die URL zum PDF abgetipt und habe das OHNE KGruppenrechte aufrufen können! Ich will das er beim Aufruf von URLs prüft ob man die Rechte hat. Ich hab mir diesbezüglich Avengers Images-Modul angesehen, was beim Zugriff auf Images-Ordner eine php-Datei in der htaccess aufruft um nichtvorhandene Bilder automatisch zu erstellen. Man könnte doch damit dann auch den Aufruf einer URL ohne Rechte verbieten... ODER????
Dafür sind die Sessions / Cookies / .htaccess da. Mit Sessions kannst du die interne Lösung von Gambio nutzen. Ich bin mir sicher, dass Gambio auch die "Rollen / Rechte / Gruppen / usw." in der Session ablegt. Cookies im Prinzip das gleiche wie mit Sessions... .htaccess totale Kontrolle durch den Admin. Nicht mal Sessions / Cookies haben eine Chance. Ich kenne den Ansatz von Avenger nicht, sorry
Ja die Möglichkeiten über die Session, Cookies und co sind mir bekannt. Ich werde das über die htaccess versuchen zu lösen!
Kommt der Inhalt der PDF aus einer Datenbank oder sind es irgendwelche Einbauanleitungen, usw. Also von euch erstellte Dokumente als PDF-Export?
Neeee. Der Admin erstellt im Content für die KGruppen einfach einen Text -> Beispiel: Download Und da ist ein Link wo man ein hinterlegtes PDF öffnen kann. Auf den Content kommt man ja nur mit der KGruppe drauf aber der Link zum PDF ist eigentlich offen!!! Und das soll nicht sein. Sobald man eine URL eines Ordners aufruft, soll geprüft werden ob man die Rechte hat den Inhalt zu öffnen. Ich denke das dies über einen htaccess-Eintrag zu machen ist.
Dir ist aber schon bewusst, dass mit einer .htaccess Datei deine Kunden ein Fenster aufgeplopt bekommen, wie in diesem Beispiel (Link nur für registrierte Nutzer sichtbar.) wo sie sich quasi nochmal verifizieren müssen Alternative Lösungen bzgl. Zugriff per PHP auf .htaccess Datei -> Datenübergabe -> Auslesen ob vorhanden -> usw. & sofort.. Da bin ich persönlich kein Freund von. Vielleicht löst du das Problem lieber mit Sessions oder durch eine Datenbankabfrage ob der Besucher/Kunde berechtigt ist. Beispiel: Schöne sauber Datenbankabfrage PHP: foreach ($this->getPermission() as $permission) { $gate->define($permission->name, function ($user) use ($permission) { return $user->hasRole($permission->roles); }); }
Es ist doch legitim zu Fragen ob ein Eintrag in der Session vorhanden ist.. Zum Beispiel session()->exists('blablabla') oder ob der Kunde zu bestimmte Gruppe gehört dann zeige den Link der aus einem base64, md5 oder bcrypt besteht welches im Prinzip auf das .pdf - Dokument zeigt.
Guten Morgen, das Prinzip wäre in Ordnung, nur wenn eine Sachbarbeiterin im Content-Manager in solch einem Content ein PDF hinzufügt als Link(übern CK-Editor), brauch ich nicht mit zusätzlichen Scripten kommen, das versteht die nicht. Deshalb muss schon beim anlegen oder Content bearbeiten eine Kennung gesetzt werden welche darauf zeigt das alle Downloads innerhalb dieses Contents nur für KGruppe xyz sind....
Guten Morgen Steffen, dein Problem kenne ich und saß vor einem gleichen (nicht in Gambio sondern in einst Eigenentwickelten CRM). Du könntest auch eine elegante Lösung realisieren - Eine Art Filesystem programmieren. Beispiel Du legst einen Ordner außerhalb des Shop-roots z.B. filesystem an (somit sind PDFs schon mal nicht direkt über die Seite aufrufbar). Du errichtest ein Fileupload für deine Büromitarbeiter in Gambio ein und sagst denen "PDFs nur noch über diesen Button hochladen" (Vielleicht unterhalb des CKEditors). Damit schreibst du quasi schon vor, wie deine Links generiert werden. Nun geht es ans angemachte, denn du musst deinem System beibringen, wie es an die Daten die in dem Ordner filesystem hinterlegt sind ran kommt. Da fallen Begriffe wie Namespace, Composer Autoloader usw. an Und wenn wir schon dabei sind dem System zu erklären, wo sich die Daten befinden, kann man auch direkt abfragen ob ich überhaupt berechtigt bin dieses Script auszuführen (per Session oder Token)... Ich hoffe Grundprinzip ist dir verständlich... Vielleicht auch abwarten und Kaffee trinken bis Gambio von Haus aus eine Art Filesystem implementiert
Kaffee ja!!! Warten???? Diese Gene wurden bei mir deaktiviert!!! Ich werd mal schauen und testen wie ich das so hinbekomme, das auch der grösste Vollpfosten das bedienen kann...
Hi Stefffen, ich hatte mir mal das download-script von hier eingebunden (Link nur für registrierte Nutzer sichtbar.) Vielleicht hilft dir das ja weiter. Das script prüft ob man vom richtigen host kommt. Vielleicht kannst es ja mit der Session erweitern