SharePointCommunity
Die deutschsprachige Community für SharePoint, Microsoft 365, Teams, Yammer und mit Azure

Sponsored by

Willkommen im Forum Archiv.
Einträge sind hier nicht mehr möglich, aber der Bestand von 12 Jahren SharePoint-Wissen ist hier recherchierbar.




Dokumente öffentlich anbieten

Unbeantwortet Dieser Beitrag hat 3 Antworten

Ohne Rang
23 Beiträge
Caro erstellt 13 Jan. 2015 10:45
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Guten Tag,

ich bin dabei ein Projekt umzusetzen. Mir fehlt dabei jedoch der richtige Ansatz.

Vielleicht kann mir dabei jemand helfen.

Der Plan: Aus verschiedenen DokumentenBibl sollen Dokumente in eine öffentliche Bibliothek verschoben werden um dort auch für anonyme Benutzer lesbar zu sein. Die StartBib und die ZielBib sind nicht in der selben Collection. An den Dokumenten hängen viele Metainformationen die mitkopiert werden müssen.
In der ZielBibl dürfen nur eine Kopie des Original sein, da an dem Original weiter intern gearbeitet wird.
Alle Nutzer haben in der ZielBib nur lesende Rechte.
Bei, oder nach dem Kopieren soll ein GenehmigungsWF durchlaufen werden. Genehmiger  haben Schreibrecht auf die ZielBib.

Folgendes habe ich versucht.

Da man mit einem DesignerWF keine Datei von einer Collection in eine andere kopieren kann, habe ich mir eine Applikation geschrieben die über das Kontextmenü der Datei aufgerufen wird. Dieser Code kopiert die Datei in die ZielBib.

Da in der ZielBib der User welcher das Dok kopiert auch keine Schreibrechte haben darf, wird dieses Kopieren mit ElevatedPrivileges durchgeführt. Dann wird in den Feldern Editor und Creator jedoch das Systemkonto eingetragen. Dieser Inhalt kann auch nicht auf einen anderne Benutzer geändert werden, da diese kein Schreibrecht in der Bib haben.Ich drehe mich also gerade im Kreis.

Evtl gibt es hier eine Standardlösung auf die ich noch nicht gekommen bin. Vielleich hat jemand einen Tipp.

Wir setzten SP2010 Enterprise ein.

Danke schon mal.

Caro

 

 

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 13 Jan. 2015 12:14
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Innerhalb von RunWithElevatedPriviledges kannst Du bei der neuanlage eines Listenelements auch die CreatedBy und ModifiedBy setzen. Jedenfalls bin ich ziemlich sicher, daß es geht, versuche es doch einfach mal.

Was auf jeden Fall geht, ist ein EventReceiver, der allerdings auf die Zielliste muß. Dort kannst Du innerhalb von ItemAdding Werte in die AfterProperties schreiben und das geht definitiv auch für CreatedBy und ModifiedBy.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
23 Beiträge
Caro Als Antwort am 13 Jan. 2015 12:46
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Richtig. Man kann innerhalb des RunWithElevatedPriviledges CreatedBy und ModifiedBy neu setzen. Bzw. sollten das bei einer Bibliothek die Felder Editor und Author sein. Das funktioniert jedoch nur wenn diese Personen auch Schreibrecht haben. Sobald diese Personen keine Rechte innerhalb der Bib haben, lassen diese sich nicht in die Felder eintragen. In diesem Fall bleiben die Personenfelder leer.

Das mit dem EventReceiver probiere ich aus.

Weiterer Versuch:

Alle Nutzer können in der Zielliste schreiben.
Dann nach dem Kopieren (ohne RunWithElevatedPriviledges), innerhalb des GenehmigungsWF als ersten Schritt einen Identitätswechsel durchzuführen, um allen Nutzern das Schreibrecht auf das Dokument zu eintziehen. Leider wird dann dem Genehmiger, der sich in einer Genehmigergruppe mit entsprechenden Rechten befindet, nicht mehr seine Genehmigungsaufgabe angezeigt. Muss man nach einen Identitätswechsel diesen wieder rückgängig machen?

 

Gibt es denn Grundsätzlich eine andere Vorgehensweise um eine solche ZielBib zu anzubieten/befüllen?

 

 

 

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 13 Jan. 2015 13:59
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="Caro"]Alle Nutzer können in der Zielliste schreiben[/quote]

Damit mußt Du dann ja mit Einzelberechtigungen auf jedes Dokument arbeiten und das halte ich für keine gute Idee. Das ist schlecht zu handeln und die bei vielen Dokumenten leidet schnell die Performance.

Der Genehmiger muß weiter Rechte behalten, sonst kann er seine Aufgabe nicht erledigen. Mindestens ihm mußt Du also die Rechte erhalten.

[quote user="Caro"]Gibt es denn Grundsätzlich eine andere Vorgehensweise um eine solche ZielBib zu anzubieten/befüllen?[/quote]

Nicht wirklich. Über die Suche kann man Dokumente von jedem Ort an einer zentralen Stelle zugänglich machen, aber dazu brauchen die Benutzer mindestens Leserechte an der Quelle. In 2013 gibt es dafür den sog. Produktkatalog. In 2010 hilft also wirklich nur kopieren. Du könntest ja für den Autor einfach ein zusätzliches Feld nehmen und nicht erst versuchen, das Standard-CreatedBy zu benutzen.

Viele Grüße
Andi
af @ evocom de
Blog