PDF-Download nur für gewisse Kundengruppen

Thema wurde von Steffen (indiv-style.de), 1. März 2016 erstellt.

  1. Steffen (indiv-style.de)
    Steffen (indiv-style.de) G-WARD 2013/14/15/16
    Registriert seit:
    30. Juni 2011
    Beiträge:
    5.143
    Danke erhalten:
    1.466
    Danke vergeben:
    452
    Beruf:
    Systemadmin, Webentwickler bei Indiv-Style
    Ort:
    PhpStorm
    #1 Steffen (indiv-style.de), 1. März 2016
    Zuletzt bearbeitet: 1. März 2016
    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?????
     
  2. Anonymous
    Anonymous Erfahrener Benutzer
    Registriert seit:
    16. Januar 2016
    Beiträge:
    656
    Danke erhalten:
    116
    Danke vergeben:
    20
    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 :)
     
  3. Steffen (indiv-style.de)
    Steffen (indiv-style.de) G-WARD 2013/14/15/16
    Registriert seit:
    30. Juni 2011
    Beiträge:
    5.143
    Danke erhalten:
    1.466
    Danke vergeben:
    452
    Beruf:
    Systemadmin, Webentwickler bei Indiv-Style
    Ort:
    PhpStorm
    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????
     
  4. Anonymous
    Anonymous Erfahrener Benutzer
    Registriert seit:
    16. Januar 2016
    Beiträge:
    656
    Danke erhalten:
    116
    Danke vergeben:
    20
    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 :(
     
  5. Steffen (indiv-style.de)
    Steffen (indiv-style.de) G-WARD 2013/14/15/16
    Registriert seit:
    30. Juni 2011
    Beiträge:
    5.143
    Danke erhalten:
    1.466
    Danke vergeben:
    452
    Beruf:
    Systemadmin, Webentwickler bei Indiv-Style
    Ort:
    PhpStorm
    Ja die Möglichkeiten über die Session, Cookies und co sind mir bekannt. Ich werde das über die htaccess versuchen zu lösen!
     
  6. Anonymous
    Anonymous Erfahrener Benutzer
    Registriert seit:
    16. Januar 2016
    Beiträge:
    656
    Danke erhalten:
    116
    Danke vergeben:
    20
    Aber mal eine andere Frage.
    Warum speicherst du die PDFs auf dem Server ab?
     
  7. Steffen (indiv-style.de)
    Steffen (indiv-style.de) G-WARD 2013/14/15/16
    Registriert seit:
    30. Juni 2011
    Beiträge:
    5.143
    Danke erhalten:
    1.466
    Danke vergeben:
    452
    Beruf:
    Systemadmin, Webentwickler bei Indiv-Style
    Ort:
    PhpStorm
    #7 Steffen (indiv-style.de), 1. März 2016
    Zuletzt bearbeitet: 1. März 2016
    Na irgendwo sollten die ja liegen... Oder hab ich die Frage falsch verstanden?
     
  8. Anonymous
    Anonymous Erfahrener Benutzer
    Registriert seit:
    16. Januar 2016
    Beiträge:
    656
    Danke erhalten:
    116
    Danke vergeben:
    20
    Kommt der Inhalt der PDF aus einer Datenbank oder sind es irgendwelche Einbauanleitungen, usw.
    Also von euch erstellte Dokumente als PDF-Export?
     
  9. Steffen (indiv-style.de)
    Steffen (indiv-style.de) G-WARD 2013/14/15/16
    Registriert seit:
    30. Juni 2011
    Beiträge:
    5.143
    Danke erhalten:
    1.466
    Danke vergeben:
    452
    Beruf:
    Systemadmin, Webentwickler bei Indiv-Style
    Ort:
    PhpStorm
    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.
     
  10. Anonymous
    Anonymous Erfahrener Benutzer
    Registriert seit:
    16. Januar 2016
    Beiträge:
    656
    Danke erhalten:
    116
    Danke vergeben:
    20
    #10 Anonymous, 2. März 2016
    Zuletzt bearbeitet: 2. März 2016
    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 :confused:

    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);
                });
            }
     
  11. Steffen (indiv-style.de)
    Steffen (indiv-style.de) G-WARD 2013/14/15/16
    Registriert seit:
    30. Juni 2011
    Beiträge:
    5.143
    Danke erhalten:
    1.466
    Danke vergeben:
    452
    Beruf:
    Systemadmin, Webentwickler bei Indiv-Style
    Ort:
    PhpStorm
    Mhhh... nen <a href="blabla">Download</a> über die Session prüfen???

    Idee??? Mehr Input bitte!!! ;)
     
  12. Anonymous
    Anonymous Erfahrener Benutzer
    Registriert seit:
    16. Januar 2016
    Beiträge:
    656
    Danke erhalten:
    116
    Danke vergeben:
    20
    #12 Anonymous, 2. März 2016
    Zuletzt bearbeitet: 2. März 2016

    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.
     
  13. Steffen (indiv-style.de)
    Steffen (indiv-style.de) G-WARD 2013/14/15/16
    Registriert seit:
    30. Juni 2011
    Beiträge:
    5.143
    Danke erhalten:
    1.466
    Danke vergeben:
    452
    Beruf:
    Systemadmin, Webentwickler bei Indiv-Style
    Ort:
    PhpStorm
    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....
     
  14. Anonymous
    Anonymous Erfahrener Benutzer
    Registriert seit:
    16. Januar 2016
    Beiträge:
    656
    Danke erhalten:
    116
    Danke vergeben:
    20
    #14 Anonymous, 2. März 2016
    Zuletzt bearbeitet: 4. März 2016
    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 :)
     
  15. Steffen (indiv-style.de)
    Steffen (indiv-style.de) G-WARD 2013/14/15/16
    Registriert seit:
    30. Juni 2011
    Beiträge:
    5.143
    Danke erhalten:
    1.466
    Danke vergeben:
    452
    Beruf:
    Systemadmin, Webentwickler bei Indiv-Style
    Ort:
    PhpStorm
    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... :)
     
  16. Anonymous
    Anonymous Beta-Held
    Registriert seit:
    22. März 2015
    Beiträge:
    2.381
    Danke erhalten:
    640
    Danke vergeben:
    414
    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