2010-12-27 18 views
1

Ich habe einen benutzerdefinierten Workflow. Dieser Workflow entfernt Berechtigungen für Elemente, wenn ein Element hinzugefügt wird (z. B. ein Element wird von einem Dienstkonto hinzugefügt und nach dem Hinzufügen müssen diese Berechtigungen aus diesem Element entfernt werden). Dies funktioniert, da das Dienstkonto im benutzerdefinierten Workflow fest codiert ist.SharePoint-Berechtigungen

Jetzt möchte ich diese harte Codierung entfernen und wenn ein Element zu einer Liste hinzugefügt wird, möchte ich alle Benutzer, die Zugriff auf das Listenelement haben, durchlaufen. Wenn ein Benutzer mit einem Algorithmus übereinstimmt, entfernen Sie diesen Benutzer aus den Elementberechtigungen, die 0 bis viele sein werden.

Das Stück, mit dem ich stolpere ist, wie alle Benutzer mit Erlaubnis zu einem SPListItem Iteration. Irgendwelche Gedanken darüber, wie das zu erreichen ist?

Vielen Dank im Voraus!

Antwort

0

Überprüfen Sie die SPListItem.RoleAssignments property aus, die eine Sammlung von SPRoleAssignment Objekten. Die Member-Eigenschaft stellt dann ein bestimmtes SPUser oder SPGroup Objekt dar, dem bestimmte Berechtigungen in Bezug auf das angegebene Listenelement zugewiesen werden, indem es an eine Auflistung von Rollendefinitionen gebunden wird.

In Ihrem Fall müssen Sie alle verfügbaren Rollenzuweisungen durchlaufen, diejenigen überprüfen, die die Principals (Benutzer oder Gruppen) kennzeichnen, die Ihren Kriterien entsprechen, und die Rollenzuweisungen so anpassen, dass sie der gewünschten Sicherheitsrichtlinie entsprechen.

0

Ich denke, ich habe gerade die Antwort gefunden. Ich kann die RoleAssignments-Sammlung iterieren und meine Überprüfung durchführen. Wenn jemand eine andere andere Ideen hat würde ich gespannt sein, sie zu hören :)

Thanks1