Berechtigungen setzen über Dokumenteneigenschaften
avatar

Viele, die insbesondere aus der Lotus Notes-Welt kommen, wünschen sich in SharePoint eine Möglichkeit, über Personenfelder Berechtigungen zu steuern. Besonders auf Dokumentenbibliotheken ist dies ein spannendes Thema. Im Folgenden zeige ich, wie sich dies mit Nintex Workflow realisieren lässt.

Auf der Bibliothek „Dokumente“ habe ich zwei neue Felder angelegt, Leser und Teilnehmer. Die dort eingetragenen Benutzer sollen jeweils Lese- bzw. Mitwirken-Rechte zusätzlich zu den Standardgruppen Besucher und Mitglieder erhalten. Die Berechtigungen werden im Hintergrund durch die Nintex-Workflows „Rechte für neues Dokument setzen“ und „Rechte für bestehendes Dokument setzen“ gesteuert.

bild1

Das Ändern der bestehenden Berechtigungen ist einfach: Hier reiht man zwei Actions zum Setzen von Berechtigungen nacheinander. Die erste Action setzt die Berechtigungen zurück, indem diese vererbt werden. Die zweite Action setzt dann die jeweiligen Rechte. Der Workflow wird so eingestellt, dass er nur bei Änderungen losläuft.

bild2

Für neue Dokumente wird es etwas tricky: Das Problem ist, dass in SharePoint grundsätzlich der Workflow bereits beim Hochladen des Dokuments gestartet wird, also bevor die Dialogbox mit den Eigenschaften erscheint. Damit wären also die Felder beim Starten des Workflows noch leer und entsprechend werden keine Berechtigungen gesetzt. Was kann dagegen unternommen werden? Die Lösung ist es, die Action „Auf die Aktualisierung eines Elements warten“ zu verwenden und dafür für alle diese Felder, die Berechtigungen steuern (in diesem Fall zwei), einen eigenen Zweig zu starten. Ich lege also einen anderen Workflow an und konfiguriere ihn so, dass er nur für neue Elemente startet.

bild3

Das hat folgende Auswirkungen:

1. Wird eines der beiden Felder beim Anlegen des Dokuments gesetzt, wartet der Workflow so lange, bis er den Inhalt des Felds lesen kann und setzt damit auch die Berechtigungen.

2. Sind die Felder leer, so bleibt der Workflow stehen, bis eines der beiden Felder erneut gesetzt wird. In diesem Moment setzen beide Workflows die Berechtigungen, was also für einen Fall obsolet wäre. Ab sofort wird nur noch der Workflow „Rechte für bestehendes Dokument setzen“ gestartet, wenn das Dokument geändert wird.

Schreibe einen Kommentar