Метод SPList.DoesUserHavePermissions (SPUser, SPBasePermissions)
Указывает, имеет ли указанный пользователь указанный набор разрешений в списке.
Пространство имен: Microsoft.SharePoint
Сборка: Microsoft.SharePoint (в Microsoft.SharePoint.dll)
Синтаксис
'Декларация
Public Function DoesUserHavePermissions ( _
user As SPUser, _
permissionMask As SPBasePermissions _
) As Boolean
'Применение
Dim instance As SPList
Dim user As SPUser
Dim permissionMask As SPBasePermissions
Dim returnValue As Boolean
returnValue = instance.DoesUserHavePermissions(user, _
permissionMask)
public bool DoesUserHavePermissions(
SPUser user,
SPBasePermissions permissionMask
)
Параметры
user
Тип: Microsoft.SharePoint.SPUserПользователь, для которого необходимо проверить разрешения.
permissionMask
Тип: Microsoft.SharePoint.SPBasePermissionsПобитовое сочетание значений перечисления, которая определяет набор разрешений.
Возвращаемое значение
Тип: System.Boolean
true , если у пользователя есть разрешения; в противном случае — false.
Исключения
Исключение | Условие |
---|---|
UnauthorizedAccessException | Текущий пользователь имеет право EnumeratePermissions . |
Примеры
Следующий пример является консольного приложения, который перечисляет всех пользователей во всех группах веб-сайта, проверка, является ли каждый пользователь имеет определенный набор разрешений в списке Общие документы.
Imports System
Imports Microsoft.SharePoint
Module ConsoleApp
Sub Main()
Using site As SPSite = New SPSite("https://localhost")
Using web As SPWeb = site.RootWeb
Dim perms As SPBasePermissions = SPBasePermissions.AddListItems _
Or SPBasePermissions.ApproveItems _
Or SPBasePermissions.CancelCheckout _
Or SPBasePermissions.DeleteListItems _
Or SPBasePermissions.DeleteVersions _
Or SPBasePermissions.EditListItems _
Or SPBasePermissions.Open _
Or SPBasePermissions.OpenItems _
Or SPBasePermissions.ViewListItems _
Or SPBasePermissions.ViewVersions
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
' Check another user's permissions.
Dim hasPermission As Boolean = list.DoesUserHavePermissions(user, perms)
Console.WriteLine("{0, -5} {1}", hasPermission, user.LoginName)
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 ConsoleApp
{
static void Main(string[] args)
{
using (SPSite site = new SPSite("https://localhost"))
{
using (SPWeb web = site.RootWeb)
{
SPBasePermissions perms = SPBasePermissions.AddListItems
| SPBasePermissions.ApproveItems
| SPBasePermissions.CancelCheckout
| SPBasePermissions.DeleteListItems
| SPBasePermissions.DeleteVersions
| SPBasePermissions.EditListItems
| SPBasePermissions.Open
| SPBasePermissions.OpenItems
| SPBasePermissions.ViewListItems
| SPBasePermissions.ViewVersions;
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)
{
// Check another user's permissions.
bool hasPermission = list.DoesUserHavePermissions(user, perms);
Console.WriteLine("{0, -5} {1}", hasPermission, user.LoginName);
}
}
}
}
}
Console.Write("\nPress ENTER to continue...");
Console.ReadLine();
}
}
}