Метод SPList.GetUserEffectivePermissions
Получает действующие разрешения для указанного пользователя есть в списке.
Пространство имен: Microsoft.SharePoint
Сборка: Microsoft.SharePoint (в Microsoft.SharePoint.dll)
Синтаксис
'Декларация
Public Overrides Function GetUserEffectivePermissions ( _
userName As String _
) As SPBasePermissions
'Применение
Dim instance As SPList
Dim userName As String
Dim returnValue As SPBasePermissions
returnValue = instance.GetUserEffectivePermissions(userName)
public override SPBasePermissions GetUserEffectivePermissions(
string userName
)
Параметры
userName
Тип: System.StringИмя пользователя, разрешения которого должны быть возвращены.
Возвращаемое значение
Тип: Microsoft.SharePoint.SPBasePermissions
Побитовое сочетание значений перечисления, которая определяет набор разрешений.
Исключения
Исключение | Условие |
---|---|
UnauthorizedAccessException | Текущий пользователь не имеет разрешения на перечисление разрешений. |
Примеры
Следующий пример является консольного приложения, который перечисляет всех пользователей во всех группах веб-сайта, проверка, является ли каждый пользователь имеет разрешения на ApproveItems в библиотеке общих документов. Пример, показывающий другой подход к той же задачи DoesUserHavePermissions(SPUser, SPBasePermissions) см.
Imports System
Imports Microsoft.SharePoint
Module Test
Sub Main()
Using site As SPSite = New SPSite("https://localhost")
Using web As SPWeb = site.OpenWeb()
' Get a list to check permissions on.
Dim listUrl As String = web.RootFolder.ServerRelativeUrl + "shared documents"
Dim list As SPList = web.GetList(listUrl)
' Be sure the current user has permission to check permissions.
If web.DoesUserHavePermissions(SPBasePermissions.EnumeratePermissions) Then
For Each group As SPGroup In web.Groups
For Each user As SPUser In group.Users
' Get the rights mask for a user.
Dim permMask As SPBasePermissions = list.GetUserEffectivePermissions(user.LoginName)
' Check if the user has a specific right.
Dim hasPermission As Boolean = (permMask & SPBasePermissions.ApproveItems) <> 0
Console.WriteLine("{0} {1} permission to approve items.", _
user.LoginName, IIf(hasPermission, "has", "does not have"))
Next
Next
End If
End Using
End Using
Console.Write(vbCrLf + "Press ENTER to continue...")
Console.ReadLine()
End Sub
End Module
using System;
using Microsoft.SharePoint;
namespace Test
{
class Program
{
static void Main(string[] args)
{
using (SPSite site = new SPSite("https://localhost"))
{
using (SPWeb web = site.OpenWeb())
{
// Get a list to check permissions on.
string listUrl = web.RootFolder.ServerRelativeUrl + "shared documents";
SPList list = web.GetList(listUrl);
// Be sure the current user has permission to check permissions.
if (web.DoesUserHavePermissions(SPBasePermissions.EnumeratePermissions))
{
foreach (SPGroup group in web.Groups)
{
foreach (SPUser user in group.Users)
{
// Get the rights mask for a user.
SPBasePermissions permMask = list.GetUserEffectivePermissions(user.LoginName);
// Check if the user has a specific right.
bool hasPermission = (permMask & SPBasePermissions.ApproveItems) != 0;
Console.WriteLine("{0} {1} permission to approve items.",
user.LoginName, hasPermission ? "has" : "does not have");
}
}
}
}
}
Console.Write("\nPress ENTER to continue...");
Console.ReadLine();
}
}
}