Sharepoint列表项权限修改

场景:删除列表项所有当前权限,替换为要求的权限(此处为 创建者可以修改,总监、组长可以查看)

 

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim oweb As SPWeb = New SPSite("http://localhost:881/").OpenWeb("/wdb")
        Dim olist As SPList = oweb.Lists("话务中心客户电话记录表")
        Dim slist As SPList = oweb.Lists("客服列表")
        Dim GLname As String
        Dim oitm As SPListItem
        For Each oitm In olist.Items
            Dim sitm As SPListItem
            For Each sitm In slist.Items
                If InStr(oitm("客服"), sitm("姓名")) Then      '取组长名
                    GLname = sitm("GL")
                    Exit For
                End If
            Next
            If GLname = "" Then
                T1.AppendText(oitm.ID & "," & oitm("客服") & "找不到组长" & vbCrLf)
                Exit Sub
            End If

            Dim spp As SPRoleAssignment
            oitm.BreakRoleInheritance(True)                     '中断继承权限
            If oitm.RoleAssignments.Count > 0 Then              '清空当前权限
                For i = oitm.RoleAssignments.Count - 1 To 0 Step -1
                    oitm.RoleAssignments.Remove(i)
                Next
            End If
            For Each usr As SPUser In oweb.SiteUsers            '查询所有用户名
                If InStr(oitm("客服"), usr.Name) Then           '如果是当前创建者,加编辑权限
                    T1.AppendText(usr.LoginName)
                    spp = New SPRoleAssignment(usr)
                    spp.RoleDefinitionBindings.Add(oweb.RoleDefinitions("编辑_CantDel"))
                    oitm.RoleAssignments.Add(spp)
                    oitm.Update()
                    T1.AppendText(oitm.ID)
                    spp = Nothing
                ElseIf usr.Name = "总监" Or InStr(GLname, usr.Name) Then                '如果是总监或者组长,加查看权限
                    T1.AppendText(usr.LoginName)
                    spp = New SPRoleAssignment(usr)
                    spp.RoleDefinitionBindings.Add(oweb.RoleDefinitions("读取"))
                    oitm.RoleAssignments.Add(spp)
                    oitm.Update()
                    T1.AppendText(oitm.ID)
                    spp = Nothing
                End If
            Next
        Next
    End Sub


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值