Seite 1 von 1

Externe Dateien einem Kunden zuordnen?

Verfasst: Mo 8. Mär 2010, 18:07
von schmitter
Hallo zusammen,

ich bin eigentlich immer davon ausgegangen, dass man jeder Datei, die in wE existiert auch eine Kunden-Berechtigung zuordnen kann. Leider ist das bei importierten TXT, PDF etc. nicht der Fall. Die sollen aber nur angezeigt werden, wenn der Kunde auch eine Berechtigung zugewiesen bekommen hat. Dem Ordner, in dem die Files liegen habe ich eine Berechtigung verpasst. Wenn ich allerdings eine Listview fahre, greift diese Restriktion allerdings nicht (Dokumente werden trotzdem angezeigt)...

Einzige Idee um das zu umgehen: Ich packe jedes File in ein Dokument oder Objekt. Da kann ich ja eine Berechtigung vergeben. Ist aber nicht gerade komfortabel...

Tja, jetzt stehe ich wie der Ochs vorm Berg. Hat jemand eine Idee, wie man das eleganter lösen könnte?

Re: Externe Dateien einem Kunden zuordnen?

Verfasst: Mo 8. Mär 2010, 18:23
von e_herrmann
Hi,
hast du im Listview-Tag das cfilter-Attribut gesetzt?
Grüße Elko
cfilter
Standardwert: off | ab Version: 5.1.0.0 | erforderlich: nein
Dieses Attribut gibt an, wie die auf Dokumenten/ Objekten eingestellten Kundenfilter für die we:listview berücksichtigt werden sollen.
Erlaubte Werte:
false
true
auto

Re: Externe Dateien einem Kunden zuordnen?

Verfasst: Mo 8. Mär 2010, 18:27
von schmitter
Hallo Elko,

yep, das Attribut ist gesetzt. Hat leider nur eine Auswirkung auf dynamisch abgespeicherte wE-Dokumente.

Re: Externe Dateien einem Kunden zuordnen?

Verfasst: Mo 8. Mär 2010, 18:39
von e_herrmann
wenn du die Date selbst in den Link einbindest, funktioniert das nicht, da sich die die Datei nicht schützen lässt.

In der Bugbase gibt es glaube ich ein Script von Daniel, das das Problem mit einem donload-Script löst.

Grüße Elko

Re: Externe Dateien einem Kunden zuordnen?

Verfasst: Mo 8. Mär 2010, 18:56
von we:willRockYou
Ja, das wäre hier: http://qa.webedition.de/tracker/view.php?id=3986

Aber das Problem hier ist ja ein Listview. Dazu habe ich momentan leider auch keine Idee. :(

Re: Externe Dateien einem Kunden zuordnen?

Verfasst: Mo 8. Mär 2010, 19:09
von schmitter
Danke euch beiden. Hab jetzt einfach einen Teil von Daniel´s Skript übernommen. Damit funkt´s! Klasse! Und @Daniel - Top Skript! Danke

Code: Alles auswählen

<?php

	function userHasAccess($obj) {
		if(isset($obj->documentCustomerFilter) && is_object($obj->documentCustomerFilter) && isset($obj->documentCustomerFilter->_filter) && $obj->documentCustomerFilter->_mode>0) {
			if ( !weDocumentCustomerFilter::customerIsLogedIn() ) {
				return false;
			}
			elseif (!$obj->documentCustomerFilter->customerHasAccess()) {
				return false;
			}
			else {
				return true;
			}
		}
		else
			return true;
	}
?>
	<we:listview type="document" name="test" workspaceID="32" cfilter="auto">
		<we:repeat>
<?php
			$file=id_to_path($lv->Record['WE_ID']);
			$file_info = pathinfo($file);
			$folder = new we_folder();
			$folder->initByPath($file_info['dirname']);
			if(userHasAccess($folder)) {

?>

		<we:field name="Title" alt="we_path" hyperlink="true"/><br />
<?php
			}
?>
		</we:repeat>
		<we:ifNotFound>not found</we:ifNotFound>
	</we:listview>

Re: Externe Dateien einem Kunden zuordnen?

Verfasst: Mo 8. Mär 2010, 19:12
von we:willRockYou
Oder so. ;) Gehen halt alle Vorzüge des Listviews verloren (Count, Blättern etc) Aber wenn Du das nicht brauchst ist das ja wirklich eine Möglichkeit. :)