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.




Workflow Berechtigungsproblem bei der Arbeit mit 2 Listen

Unbeantwortet Dieser Beitrag hat 6 Antworten

Ohne Rang
10 Beiträge
Bum Bum erstellt 6 Sept. 2010 14:05
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Community,

ich habe da ein kleines Problem und hoffe, dass Ihr mir helfen könnt.

Problembeschreibung:

Ich habe zwei Listen => Liste A und Liste B
Ich habe einen USer => User X
User X hat auf Liste A Mitgliedsrechte.
User X hat auf Liste B Besuchsrechte.

Es existiert ein Workflow der nach dem Hinzufügen eines Elements in Liste A -  Informationen an die Liste B sendet. 

Leider schlägt der Workflow fehl da User X auf Liste B nur Besuchsrechte hat.

Jetzt meine Frage:
Wie kann ich durch einen von User X gestartet Workflow Informationen an die Liste B senden ohne User X mehr als Besuchsrechte auf der Liste B einzuräumen.

Vielen Dank im Voraus.

Bum Bum 

Alle Antworten

Ohne Rang
1714 Beiträge
C.Kaiser Als Antwort am 6 Sept. 2010 14:09
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Moin,

das könnte ich mir bei einem SPD-Workflow nur über einen Umweg vorstellen und zwar in dem du dem User die Rechte auf die Liste innerhalb des Workflows gibts, die Informationen übergibst und danach die Rechte wieder enziehst.

Wenn es ein Visual Studio Workflow ist, dann mit SPSecurity.RunWithElevatedPrivileges

Beste Grüße,
Christian

http://www.sharepoint-rhein-ruhr.de

Ohne Rang
10 Beiträge
Bum Bum Als Antwort am 6 Sept. 2010 14:21
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Christian,

vielen Dank für deine schnelle Antwort,

der Workflow ist mit SharePoint Designer gebaut. - Mit VS habe ich noch keinen Workflow gebaut.

Ich wollte die Hürde Workflow mit VS auch erstmal umgehen, da meine Workflow bisher eher trival sind.

Mit dem Designer habe ich sonst keine Möglichkeit zur Lösung des Problems?

Gruß

Bum Bum

 

Ohne Rang
1714 Beiträge
C.Kaiser Als Antwort am 6 Sept. 2010 14:29
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Nein, ich sehe keine Möglichkeit außer den beiden vorgeschlagenen. Workflows laufen halt immer im Kontext des Users, der diese anstößt.

Hiermit kannst du im SPD Rechte auf Elemente setzen und entziehen http://spdactivities.codeplex.com/
Da bin ich aber auch nicht sicher ob man Rechte direkt auf die Liste / Bibliothek setzen kann.

Noch eine Möglichkeit wäre wieder VS Studio, und zwar das Erstellen einer eignen Custom Action für den SPD.

Beste Grüße,
Christian

http://www.sharepoint-rhein-ruhr.de

Ohne Rang
10 Beiträge
Bum Bum Als Antwort am 6 Sept. 2010 14:44
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Vielen Dank für die Antwort Christian.

Also ran an VS.

Danke

Bum Bum

Ohne Rang
1714 Beiträge
C.Kaiser Als Antwort am 6 Sept. 2010 14:52
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Robert Shelton hat dazu ein paar gute Videos ins Netz gestellt, mit denen man recht zügig eigene Workflows bauen kann.

http://rshelton.com/Tags/Workflow/default.aspx

Nachteil: Wenn Probleme auftreten ist man meist länger aufgeschmissen, weil man die Hintergründe nicht verstanden hat (Kenne ich aus eigener Erfahrung. :-) ) 

Beste Grüße,
Christian

http://www.sharepoint-rhein-ruhr.de

Ohne Rang
10 Beiträge
Bum Bum Als Antwort am 7 Sept. 2010 15:07
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo zusammen,

ich habe noch etwas tiefer geforscht und bin auf den SP Designer 2010 gestossen. Dieser unterstützt im Workflowmodus die Impersonation die Christian Kaiser beschrieben hat Out of the Box.

Ansonsten muss ein Workflow mit VS programmiert werden mit folgenden Code:

SPWeb web = SPControl.GetContextWeb(Context);
SPSecurity.RunWithElevatedPrivileges(delegate()
{
using (SPSite site = new SPSite(web.Site.ID))
{
// folgender Code wird mit der Berechtigung des Systemaccounts ausgeführt
}
});