Получить список доступа пользователей по имени папки вместо идентификатора папки в SharePoint - PullRequest
0 голосов
/ 17 апреля 2019

Можно ли получить список пользователей, которые имеют доступ к папке в Sharepoint через папку name вместо папки ID?

Причина: папка принадлежит дочернему сайту и имеет другой уникальный идентификатор по сравнению с основным сайтом, поэтому список пользователей будет пустым или неточным из-за разных идентификаторов на основном и дочерних сайтах.

Текущий код:

Main

//to modify the following code to get by folder name, instead of folder id 
node.Attributes.Add("access", GetAccessXml(folder.Item.RoleAssignments, out originalAccess));

GetAccessXml

private string GetAccessXml(SPRoleAssignmentCollection roleAssignments, out string originalAccess)
{
    //currently returning empty list
    var list = roleAssignments.GetUserWithReadPermissionOnly();

    var entries = "<Entities Append=\"False\" Error=\"\" Separator=\";\" MaxHeight=\"3\">{0}</Entities>";
    var entryTemplate = "<Entity Key=\"{0}\" DisplayText=\"{1}\" IsResolved=\"True\" Description=\"{0}\"><MultipleMatches /></Entity>";
    var entryBuilder = new StringBuilder();
    var csv = new StringBuilder();

    foreach (var principal in list)
    {
        var entry = entryTemplate;
        entryBuilder.AppendFormat(entry, principal.LoginName, principal.Name);
        csv.Append(principal.LoginName).Append(",");
    }
    originalAccess = csv.ToString().TrimEnd(',');
    return entries.FormatWith(entryBuilder);
}

Я имею в виду использование folder.Item.Title или folder.Item.Name, но у них нет реализации .RoleAssignments.

Любая помощь будет оценена.

...