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.




berechtigung auf SPListItem vergeben in kombination mit Alerts

Unbeantwortet Dieser Beitrag hat 2 Antworten

Ohne Rang
3 Beiträge
MichaelGros erstellt 16 Apr. 2013 09:53
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

hallo zusammen, 

ich möchte beim erstellen eines neues SPListItem berechtigungen für bestimmte personen vergeben. um das zu erreichen verwenden ich folgenden code.

Imports System
Imports System.Security.Permissions
Imports Microsoft.SharePoint

Public Class EventReceiverTestList
    Inherits SPItemEventReceiver

    Public Overrides Sub ItemAdded(properties As SPItemEventProperties)
        Dim CurrentlistItem As SPListItem = properties.ListItem
        CurrentlistItem.BreakRoleInheritance(True)
        Dim SPRoleAssColn As SPRoleAssignmentCollection = CurrentlistItem.RoleAssignments
        For i As Integer = SPRoleAssColn.Count - 1 To 0 Step -1
            SPRoleAssColn.Remove(i)
        Next

        Dim mWeb As SPWeb = properties.Web
        Dim oSPRoleDefinition As SPRoleDefinition = mWeb.RoleDefinitions.GetByType(SPRoleType.Contributor)
        Dim userWriter As SPUser = New SPFieldUserValue(mWeb, CurrentlistItem("ReportWriter").ToString).User
        Dim oSPRoleAssignment As New SPRoleAssignment(userWriter)
        oSPRoleAssignment.RoleDefinitionBindings.Add(oSPRoleDefinition)
        CurrentlistItem.RoleAssignments.Add(oSPRoleAssignment)

        EventFiringEnabled = False
        CurrentlistItem.SystemUpdate(False)
        EventFiringEnabled = True
    End Sub
End Class

soweit funktioniert alles wunderbar. problem sind die "Alerts" die versendet werden.

"Alerts" werden bereits vor dem erteilen der berechtigung versendet, dh auch user die nicht berechtigung auf das SPListItem besitzen bekommen trotzdem eine "Alert". 

gibt es eine möglichkeit das problem zu umgehen?

vielen dank!

michael

 

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 16 Apr. 2013 10:05
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ich sehe da nur die Möglichkeit auf die Standard-Alerts zu verzichten und eigene Benachrichtigungen zu verschicken. Das könnte man z.B. mit einem Workflow erreichen. In dem Fall kannst Du auch gleich die Berechtigungen per Workflow setzen.

Übrigens brauchst Du das Update auf das ListItem nicht, d.h. Du kannst es komplett weglassen inkl. EventFiringEnabled. Änderungen an den RoleAssignments werden immer direkt gespeichert.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
3 Beiträge
MichaelGros Als Antwort am 16 Apr. 2013 10:56
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

vielen dank andy für die antwort,

für mich ist das unverständlich wieso es keine möglichkeit gibt die berechtigung vor dem versenden der alerts zu setzen. so bedeutet es einen mehraufwand und vor allem die standart-alerts können nicht mehr verwendet werden. sehr schade!

nochmals vielen dank und danke auch für den tipp