PDFs nach Kunden einschränken

Hier können Sie Fragen bezüglich der Kundenverwaltung stellen.
saniki

PDFs nach Kunden einschränken

Beitragvon saniki » Do 11. Jun 2009, 15:45

Hallo zusammen

Bei den WebEdition-Seiten gibt es die Möglichkeit, diese nach Kunden einschränken zu lassen.

Das Ganze würde ich auch gerne auch bei PDF/Word/Excel-Dateien können. Gibt es einen Grund, warum dort die Einschränkung nicht möglich sein sollte?
Beziehungsweise wo müsste dies überall angepasst werden, damit es funktioniert?

Bisher angepasst hatte ich die we_binaryDocument.inc.php für die Anzeige als Reiter bei den Dateien. Zudem hab ich weDocumentCustomerFilter.class.php um die EInschränkung von Dateien in Listviews erweitert.
Gibt es weitere Stellen, die unbedingt angepasst werden müssten?

Ich nehme mal an, dass bei der Verlinkung in den Textareas das auch eingeschränkt werden müsste. Aber wo finde ich die? Und gibt es weitere Orte, bei denen diese Thematik zum Tragen kommt?

Besten Dank und freundliche Grüsse
Lena

we:willRockYou
Senior Member
Beiträge: 919
Registriert: Fr 22. Mai 2009, 21:40
Wohnort: Berlin
Kontaktdaten:

Re: PDFs nach Kunden einschränken

Beitragvon we:willRockYou » Do 11. Jun 2009, 16:08

Hallo Lena,

das Problem ist ganz einfach. Die Dateien werden direkt verlinkt und somit kann der Zugriff ganz generell nicht von webEdition eingeschränkt werden. Dafür bräuchte es z.B. ein eigenes Apache-Modul. Die einzige mir ersichtliche Lösung ist, den Zugriff generell zu verbieten (.htaccess/htpasswd auf Download-Ordner) und die Dateien nur über ein eigenes PHP-Script auszuliefern, unter Berücksichtigung der Nutzer/Gruppenrechte. Irgendwo in den Eingeweiden des Forums gab es auch mal eine Lösung mit genauer Beschreibung wie man das umsetzen kann. Das ging jedoch nicht so weit, dass man die Rechte über das Dokument selbst einschränken konnte. Vielleicht findest Du den Thread ja.
EOF; //totally retired

we:willRockYou
Senior Member
Beiträge: 919
Registriert: Fr 22. Mai 2009, 21:40
Wohnort: Berlin
Kontaktdaten:

Re: PDFs nach Kunden einschränken

Beitragvon we:willRockYou » Do 11. Jun 2009, 16:35

EOF; //totally retired

plan4
Member
Beiträge: 56
Registriert: Do 1. Jan 1970, 02:00
Wohnort: Bremen
Kontaktdaten:

Re: PDFs nach Kunden einschränken

Beitragvon plan4 » Fr 5. Feb 2010, 14:40

Ich habe nach einer generellen Lösung gesucht, Dokumente wie PDFs etc. automatisch durch eine download.php ausgeben zu lassen, die zunächst die Rechte prüft.

Setzt man Apache ein, kann eine RewriteRule helfen, die man in der VirtualHost-Konfiguration oder - sofern erlaubt - in einer .htaccess-Datei unterbringen kann:

Code: Alles auswählen

RewriteEngine on
RewriteRule (.*)\.pdf$ /download.php?File=$1.pdf
RewriteRule (.*)\.doc$ /download.php?File=$1.doc
RewriteRule (.*)\.xls$ /download.php?File=$1.xls
Wer sich besser mit regulären Ausdrücken auskennt, kann das wahrscheinlich auch noch eleganter lösen.

Die Redakteure können so an beliebiger Stelle ganz normale Links auf diese Dateien setzen, Apache sorgt dafür, dass sie niemals direkt ausgeliefert werden. Die download.php beinhaltet zunächst eine Prüfung, ob der User angemeldet ist, und sendet dann die angeforderte Datei zum Browser. Andernfalls gibt sie eine HTML-Seite mit einer benutzerfreundlichen Fehlermeldung zurück oder leitet gleich auf eine Login-Seite weiter.

Kopf der zugrundeliegenden download.tmpl:

Code: Alles auswählen

<we:sessionStart/>
<we:ifNotWebEdition>
<we:ifNotRegisteredUser>
<?php
  header ("Location: /login.php?source=" . $_SERVER['SCRIPT_NAME']);
?>
  <we:else/>
<?php
  $MyFile = $_REQUEST["File"];
  if ($MyFile) {
    $MyDownloadFile = $_SERVER["DOCUMENT_ROOT"] . "/" . $MyFile;
    if (file_exists($MyDownloadFile)) {
      $FileExists = true;
      header("Content-Type: application/octet-stream");
      header("Content-Disposition: attachment; filename=$MyFile");
      readfile($MyDownloadFile);
      exit();
    } else {
      $FileExists = false;
    }

  }
?>
</we:ifNotRegisteredUser>
</we:ifNotWebEdition>
[HTML-Code zur Anzeige einer Fehlerseite ...]
Auf diese Weise kann man sich die explizite Verarbeitung der Dokumenten-Links, wie z.B. hier viewtopic.php?f=87&t=11686 beschrieben, sparen.

Da diese Lösung quasi global über die gesamte Site arbeitet, suche ich allerdings noch nach einer Lösung, die spezifischen Berechtigungen auf einem Verzeichnis manuell zu prüfen, die per Kundenfilter gesetzt sind. D.h. die download.php müsste das Verzeichnis ermitteln, in dem sich die verlinkte Datei befindet, und prüfen, ob dort ein Kundenfilter gesetzt ist bzw. dieser auf den angemeldeten User zutrifft. Hat jemand hierzu eine Lösung?

Viele Grüße
Dietmar

we:willRockYou
Senior Member
Beiträge: 919
Registriert: Fr 22. Mai 2009, 21:40
Wohnort: Berlin
Kontaktdaten:

Re: PDFs nach Kunden einschränken

Beitragvon we:willRockYou » Fr 5. Feb 2010, 15:09

Hi Dietmar,

etwas ausgefeilter: http://qa.webedition.de/tracker/view.php?id=3986 :-)

Prüft nicht nur ob der Nutzer eingelogt ist, sondern auch explizit auf die benötigten Rechte.
EOF; //totally retired

plan4
Member
Beiträge: 56
Registriert: Do 1. Jan 1970, 02:00
Wohnort: Bremen
Kontaktdaten:

Re: PDFs nach Kunden einschränken

Beitragvon plan4 » Sa 6. Feb 2010, 00:44

Spitzen-Lösung, Daniel!
Danke :-)

sa_biene

Re: PDFs nach Kunden einschränken

Beitragvon sa_biene » Fr 12. Mär 2010, 10:39

we:willRockYou hat geschrieben:Hi Dietmar,

etwas ausgefeilter: http://qa.webedition.de/tracker/view.php?id=3986 :-)

Prüft nicht nur ob der Nutzer eingelogt ist, sondern auch explizit auf die benötigten Rechte.
Hallo alle zusammen,

habe nun auch versucht das Ganze umzusetzen, jedoch scheitere ich schon am Veröffentlichen meiner download.php, webEdition will die Seite einfach nicht veröffentlichen und stellt sie mir im Verzeichnisbaum nur als geparkt dar. Und er meldet mir unter dem Reiter "Bearbeiten" - "Fehler: Unbekannte Datei", ist das normal? Oder ist mein Template schon falsch?

Was muss ich tun? :(

Ich hoffe ihr könnt mir weiterhelfen...

Gruß Sabine

we:willRockYou
Senior Member
Beiträge: 919
Registriert: Fr 22. Mai 2009, 21:40
Wohnort: Berlin
Kontaktdaten:

Re: PDFs nach Kunden einschränken

Beitragvon we:willRockYou » Mo 15. Mär 2010, 12:09

Kann ich leider nicht nachvollziehen. Sowas hatte ich noch nie. Was ist denn die Meldung beim Veröffentlichen? Es gibt nicht zufällig schon eine Datei im Dateisystem (per FTP nachschauen) die genau so heisst? Mal mit einem anderen Dateinamen versuchen. Vielleicht auch einfach allgemeine Rechteprobleme? Können andere Dateien in diesem Ordner veröffentlicht werden.

Das mit der Meldung im Bearbeiten-Tab ist OK. Da gibt es ja auch nichts zu bearbeiten, ist ja ein Download-Script. ;)
EOF; //totally retired

sa_biene

Re: PDFs nach Kunden einschränken

Beitragvon sa_biene » Mo 15. Mär 2010, 13:15

Okay, hab jetzt noch mal alles von vorne gemacht:

Template erstellt, webEdition Seite erstellt und htaccess erstellt.
Template speichern funktioniert hataccess auch!

Beim speichern der Seite, die das download-Template nutzt, wird mir folgende Fehlermeldeung gegeben: "Fehler: Die webEdition-Seite '/downloadportal/download.php' konnte nicht gespeichert werden, da es bereits eine andere Datei oder ein anderes Verzeichnis an dieser Stelle gibt!" --> dort gibt es aber keine Datei die genauso heißen könnte (auch über FTP geschaut), andere Dokumente/Seiten werden ohne weiteres erfolgreich gespeichert. Mit anderer Benamung und an anderer Stelle habe ich es auch schon versucht...klappt auch nicht.

Was mir dann aufgefallen ist, dass die Meldung unter dem Reiter "Information" folgende ist: "Warning: Cannot modify header information - headers already sent by (output started at /is/htdocs/wp1114255_NRNLV2PEE8/webEdition/we/include/we_html_tools.inc.php:731) in /is/htdocs/wp1114255_NRNLV2PEE8/webEdition/we/templates/download.php on line 95
Fehler: Unbekannte Datei"

Die hab ich vorher gar nicht gesehen. :(
Wahrscheinlich ist das der Fehler ?!?!?!

Gruß Sabine

we:willRockYou
Senior Member
Beiträge: 919
Registriert: Fr 22. Mai 2009, 21:40
Wohnort: Berlin
Kontaktdaten:

Re: PDFs nach Kunden einschränken

Beitragvon we:willRockYou » Mo 15. Mär 2010, 14:02

Hm, das Problem trat bei mir definitiv nicht auf. Andererseits...habe ich wohl erst das Dokument erstellt und danach das Template entwickelt. Habe nicht versucht das Dokument dann noch mal zu verändern. Das wirds wohl sein. Speichere also mal das Template komplett leer ab. Dann veröffentlichst Du das Dokument. Und dann änderst Du nochmal das Template und fügst den Inhalt ein.
EOF; //totally retired

sa_biene

Re: PDFs nach Kunden einschränken

Beitragvon sa_biene » Mo 15. Mär 2010, 14:16

:( Geht auch nicht, jetzt friert mir das Rebuild Fenster ein, bzw. es gibt keinen Fortschritt...
Gleiche Fehlermeldung immer noch unter dem Informations-Reiter, gespeichert aber schienbar nicht veröffentlicht...
Vielleicht ein Update-Bug? Nutze Version: 6.0.0.8

sa_biene

Re: PDFs nach Kunden einschränken

Beitragvon sa_biene » Di 16. Mär 2010, 13:42

Hat keiner ne Idee was los sein könnte?


Zurück zu „Kundenverwaltung“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 9 Gäste