Ulteam.SharePoint
Permissions Class
Namespace: Ulteam.SharePoint
Description
Класс по работе с правами на элементе списка SharePoint
Methods
Name | Description |
---|---|
AddRoleAssignment(SPListItem Item, SPPrincipal Principal, SPRoleDefinition RoleDefinition) | Добавляет права пользователю или группе Principal на элемент списка Item. Item: Элемент списка Principal: Пользователь или группа RoleDefinition: Определение роли |
AddRoleAssignment(SPWeb Web, SPPrincipal Principal, SPRoleDefinition RoleDefinition) | Добавляет права пользователю или группе Principal на узел. Web: Узел Principal: Пользователь или группа RoleDefinition: Определение роли |
AddRoleAssignment(SPList List, SPPrincipal Principal, SPRoleDefinition RoleDefinition) | Добавляет права пользователю или группе Principal на список. List: List Principal: Пользователь или группа RoleDefinition: Определение роли |
AddRoleAssignment(SPListItem Item, SPPrincipal Principal, SPRoleType RoleType) | Добавляет права пользователю или группе Principal на элемент списка Item. Item: Элемент списка Principal: Пользователь или группа RoleType: Стандартный тип роли. |
AddRoleAssignment(SPWeb Web, SPPrincipal Principal, SPRoleType RoleType) | Добавляет права пользователю или группе Principal на узел. Web: Узел Principal: Пользователь или группа RoleType: Стандартный тип роли. |
AddRoleAssignment(SPList List, SPPrincipal Principal, SPRoleType RoleType) | Добавляет права пользователю или группе Principal на список. List: Список Principal: Пользователь или группа RoleType: Стандартный тип роли. |
AddRoleAssignment(SPListItem Item, SPPrincipal Principal, String RoleDefinitionName) | Добавляет права пользователю или группе Principal на элемент списка Item. Item: Элемент списка Principal: Пользователь или группа RoleDefinitionName: Название роли. Например: “Совместная работа”, “Чтение” и т.д. |
AddRoleAssignment(SPWeb Web, SPPrincipal Principal, String RoleDefinitionName) | Добавляет права пользователю или группе Principal на узел. Web: Узел Principal: Пользователь или группа RoleDefinitionName: Название роли. Например: “Совместная работа”, “Чтение” и т.д. |
AddRoleAssignment(SPList List, SPPrincipal Principal, String RoleDefinitionName) | Добавляет права пользователю или группе Principal на список. List: Список Principal: Пользователь или группа RoleDefinitionName: Название роли. Например: “Совместная работа”, “Чтение” и т.д. |
ChangeRoleAssignment(SPListItem Item, SPPrincipal Principal, String DeleteRoleDefinitionName, String AddRoleDefinitionName) | Замена прав пользователя или группы Principal на элемент списка Item. Item: Элемент списка Principal: Пользователь или группа DeleteRoleDefinitionName: Название роли для удаления. Например: “Совместная работа”, “Чтение” и т.д. AddRoleDefinitionName: Название роли для добавления. Например: “Совместная работа”, “Чтение” и т.д. |
ChangeRoleAssignment(SPWeb Web, SPPrincipal Principal, String DeleteRoleDefinitionName, String AddRoleDefinitionName) | Замена прав пользователя или группы Principal на узел. Web: Узел Principal: Пользователь или группа DeleteRoleDefinitionName: Название роли для удаления. Например: “Совместная работа”, “Чтение” и т.д. AddRoleDefinitionName: Название роли для добавления. Например: “Совместная работа”, “Чтение” и т.д. |
ChangeRoleAssignment(SPList List, SPPrincipal Principal, String DeleteRoleDefinitionName, String AddRoleDefinitionName) | Замена прав пользователя или группы Principal на список. List: Список Principal: Пользователь или группа DeleteRoleDefinitionName: Название роли для удаления. Например: “Совместная работа”, “Чтение” и т.д. AddRoleDefinitionName: Название роли для добавления. Например: “Совместная работа”, “Чтение” и т.д. |
ChangeRoleAssignment(SPListItem Item, SPPrincipal Principal, SPRoleDefinition DeleteRoleDefinition, SPRoleDefinition AddRoleDefinition) | Замена прав пользователя или группы Principal на элемент списка Item. Item: Элемент списка Principal: Пользователь или группа DeleteRoleDefinition: Определение роли для удаления. Например: “Совместная работа”, “Чтение” и т.д. AddRoleDefinition: Определение роли для добавления. Например: “Совместная работа”, “Чтение” и т.д. |
ChangeRoleAssignment(SPWeb Web, SPPrincipal Principal, SPRoleDefinition DeleteRoleDefinition, SPRoleDefinition AddRoleDefinition) | Замена прав пользователя или группы Principal на узел. Web: Узел Principal: Пользователь или группа DeleteRoleDefinition: Определение роли для удаления. Например: “Совместная работа”, “Чтение” и т.д. AddRoleDefinition: Определение роли для добавления. Например: “Совместная работа”, “Чтение” и т.д. |
ChangeRoleAssignment(SPList List, SPPrincipal Principal, SPRoleDefinition DeleteRoleDefinition, SPRoleDefinition AddRoleDefinition) | Замена прав пользователя или группы Principal на список. List: Список Principal: Пользователь или группа DeleteRoleDefinition: Определение роли для удаления. Например: “Совместная работа”, “Чтение” и т.д. AddRoleDefinition: Определение роли для добавления. Например: “Совместная работа”, “Чтение” и т.д. |
GetRoleAssignment(SPListItem Item, SPPrincipal Principal) | Получение установленных прав пользователя или группы Principal на элемент списка Item. Если прав нет, то возвращает пустой SPRoleAssignment. Item: Элемент списка. Principal: Пользователь или группа. |
GetRoleAssignment(SPWeb Web, SPPrincipal Principal) | Получение установленных прав пользователя или группы Principal на узел. Если прав нет, то возвращает пустой SPRoleAssignment. Web: Узел. Principal: Пользователь или группа. |
GetRoleAssignment(SPList List, SPPrincipal Principal) | Получение установленных прав пользователя или группы Principal на список. Если прав нет, то возвращает пустой SPRoleAssignment. List: Список. Principal: Пользователь или группа. |
GetPrincipals(SPListItem Item, Boolean ExceptRestrictedRead) | Получение всех Principal’ов у элемента списка Item. Item: Элемент списка ExceptRestrictedRead: Если true, то не учитываются Principal’ы только с уровнем разрешений “Ограниченный доступ” (или “Restricted Read” для англоязычных сайтов). Значение по умолчанию: true |
GetPrincipals(SPWeb Web, Boolean ExceptRestrictedRead) | Получение всех Principal’ов у узла. Web: Узел ExceptRestrictedRead: Если true, то не учитываются Principal’ы только с уровнем разрешений “Ограниченный доступ” (или “Restricted Read” для англоязычных сайтов). Значение по умолчанию: true |
GetPrincipals(SPList List, Boolean ExceptRestrictedRead) | Получение всех Principal’ов у списка. List: Список ExceptRestrictedRead: Если true, то не учитываются Principal’ы только с уровнем разрешений “Ограниченный доступ” (или “Restricted Read” для англоязычных сайтов). Значение по умолчанию: true |
GetPrincipalsExceptList(SPListItem Item, List<String> ExceptRoleDefinitionNameList, Boolean ExceptRestrictedRead) | Получение всех Principal’ов у элемента списка Item. Не учитываются Principal’ы, у которых есть права только из списка ExceptRoleDefinitionNameList Item: Элемент списка ExceptRoleDefinitionNameList: Список названий уровней разрешений, которые необходимо игнорировать. ExceptRestrictedRead: Если true, то не учитываются Principal’ы только с уровнем разрешений “Ограниченный доступ” (или “Restricted Read” для англоязычных сайтов). Значение по умолчанию: true |
GetPrincipalsExceptList(SPWeb Web, List<String> ExceptRoleDefinitionNameList, Boolean ExceptRestrictedRead) | Получение всех Principal’ов у узла. Не учитываются Principal’ы, у которых есть права только из списка ExceptRoleDefinitionNameList Web: Узел. ExceptRoleDefinitionNameList: Список названий уровней разрешений, которые необходимо игнорировать. ExceptRestrictedRead: Если true, то не учитываются Principal’ы только с уровнем разрешений “Ограниченный доступ” (или “Restricted Read” для англоязычных сайтов). Значение по умолчанию: true |
GetPrincipalsExceptList(SPList List, List<String> ExceptRoleDefinitionNameList, Boolean ExceptRestrictedRead) | Получение всех Principal’ов у списка. Не учитываются Principal’ы, у которых есть права только из списка ExceptRoleDefinitionNameList List: Список. ExceptRoleDefinitionNameList: Список названий уровней разрешений, которые необходимо игнорировать. ExceptRestrictedRead: Если true, то не учитываются Principal’ы только с уровнем разрешений “Ограниченный доступ” (или “Restricted Read” для англоязычных сайтов). Значение по умолчанию: true |
GetRoleAssignmentsExceptList(SPListItem Item, List<String> ExceptRoleDefinitionNameList) | Получение всех установленных прав на элемент списка Item. Не учитываются RoleAssignment’ы, у которых есть RoleDefinition.Name только из списка ExceptRoleDefinitionNameList Item: Элемент списка ExceptRoleDefinitionNameList: Список названий уровней разрешений, которые необходимо игнорировать. |
GetRoleAssignmentsExceptList(SPWeb Web, List<String> ExceptRoleDefinitionNameList) | Получение всех установленных прав на узел. Не учитываются RoleAssignment’ы, у которых есть RoleDefinition.Name только из списка ExceptRoleDefinitionNameList Web: Узел ExceptRoleDefinitionNameList: Список названий уровней разрешений, которые необходимо игнорировать. |
GetRoleAssignmentsExceptList(SPList List, List<String> ExceptRoleDefinitionNameList) | Получение всех установленных прав на список. Не учитываются RoleAssignment’ы, у которых есть RoleDefinition.Name только из списка ExceptRoleDefinitionNameList List: Список ExceptRoleDefinitionNameList: Список названий уровней разрешений, которые необходимо игнорировать. |
GetRoleDefinition(SPWeb Web, String RoleName) | Получение SPRoleDefinition по названию роли. Web: Узел, на котором необходимо совершить действие с правами на объект SharePoint. RoleName: Название роли. Возможные значения: Совместная работа, Изменение, Чтение и т.д. |
GetRoleDefinition(SPWeb Web, SPRoleType RoleType) | Получение RoleDefinition по типу стандартной роли. Web: Узел, на котором необходимо совершить действие с правами на объект SharePoint. RoleType: Тип стандартной роли |
DeleteRoleDefinitionBinding(SPRoleAssignment RoleAssignment, SPRoleDefinition RoleDefinition) | Удаление роли RoleDefinition из коллекции ролей RoleDefinitionBindings для установленных прав RoleAssignment на элемент списка. RoleAssignment: Установленные права на элемент списка RoleDefinition: Роль для удаления |
DeletePermissionsByRoleDefinition(SPListItem Item, SPRoleDefinition RoleDefinition) | Удаление всех прав определенной роли RoleDefinition из элемента списка Item Item: Элемент списка RoleDefinition: Роль для удаления |
DeletePermissionsByRoleDefinition(SPWeb Web, SPRoleDefinition RoleDefinition) | Удаление всех прав определенной роли RoleDefinition из узла Web: Узел. RoleDefinition: Роль для удаления |
DeletePermissionsByRoleDefinition(SPList List, SPRoleDefinition RoleDefinition) | Удаление всех прав определенной роли RoleDefinition из списка List: Список. RoleDefinition: Роль для удаления |
DeletePermissionsByRoleTitle(SPListItem Item, String RoleTitle) | Удаление всех прав определенного типа RoleTitle из элемента списка Item Item: Элемент списка RoleTitle: Название роли (в уровнях разрешений site collection) для удаления. Возможные значения: Совместная работа, Изменение, Чтение и т.д. |
DeletePermissionsByRoleTitle(SPWeb Web, String RoleTitle) | Удаление всех прав определенного типа RoleTitle из узла Web: Узел RoleTitle: Название роли (в уровнях разрешений site collection) для удаления. Возможные значения: Совместная работа, Изменение, Чтение и т.д. |
DeletePermissionsByRoleTitle(SPList List, String RoleTitle) | Удаление всех прав определенного типа RoleTitle из списка List: Список RoleTitle: Название роли (в уровнях разрешений site collection) для удаления. Возможные значения: Совместная работа, Изменение, Чтение и т.д. |
DeletePermissionsByRoleType(SPListItem Item, SPRoleType RoleType) | Удаление всех прав определенного типа RoleType из элемента списка Item Item: Элемент списка RoleType: Тип стандартной роли для удаления |
DeletePermissionsByRoleType(SPWeb Web, SPRoleType RoleType) | Удаление всех прав определенного типа RoleType из узла Web: Узел. RoleType: Тип стандартной роли для удаления |
DeletePermissionsByRoleType(SPList List, SPRoleType RoleType) | Удаление всех прав определенного типа RoleType из списка List: Список. RoleType: Тип стандартной роли для удаления |
DeletePermissionByRoleDefinition(SPListItem Item, SPPrincipal Principal, SPRoleDefinition RoleDefinition) | Удаление прав пользователя или группы Principal определенной роли RoleDefinition из элемента списка Item. Item: Элемент списка Principal: Пользователь или группа. Параметр может быть следующих типов: Principal, User, Group RoleDefinition: Роль для удаления |
DeletePermissionByRoleDefinition(SPWeb Web, SPPrincipal Principal, SPRoleDefinition RoleDefinition) | Удаление прав пользователя или группы Principal определенной роли RoleDefinition из узла. Web: Узел Principal: Пользователь или группа. Параметр может быть следующих типов: Principal, User, Group RoleDefinition: Роль для удаления |
DeletePermissionByRoleDefinition(SPList List, SPPrincipal Principal, SPRoleDefinition RoleDefinition) | Удаление прав пользователя или группы Principal определенной роли RoleDefinition из списка. List: Список Principal: Пользователь или группа. Параметр может быть следующих типов: Principal, User, Group RoleDefinition: Роль для удаления |
DeletePermissionByRoleTitle(SPListItem Item, SPPrincipal Principal, String RoleTitle) | Удаление прав пользователя или группы Principal определенного типа RoleTitle из элемента списка Item Item: Элемент списка Principal: Пользователь или группа. Параметр может быть следующих типов: Principal, User, Group RoleTitle: Название роли (в уровнях разрешений site collection) для удаления. Возможные значения: Совместная работа, Изменение, Чтение и т.д. |
DeletePermissionByRoleTitle(SPWeb Web, SPPrincipal Principal, String RoleTitle) | Удаление прав пользователя или группы Principal определенного типа RoleTitle из узла Web: Узел. Principal: Пользователь или группа. Параметр может быть следующих типов: Principal, User, Group RoleTitle: Название роли (в уровнях разрешений site collection) для удаления. Возможные значения: Совместная работа, Изменение, Чтение и т.д. |
DeletePermissionByRoleTitle(SPList List, SPPrincipal Principal, String RoleTitle) | Удаление прав пользователя или группы Principal определенного типа RoleTitle из списка List: Список. Principal: Пользователь или группа. Параметр может быть следующих типов: Principal, User, Group RoleTitle: Название роли (в уровнях разрешений site collection) для удаления. Возможные значения: Совместная работа, Изменение, Чтение и т.д. |
DeletePermissionByRoleType(SPListItem Item, SPPrincipal Principal, SPRoleType RoleType) | Удаление прав пользователя или группы Principal определенного типа RoleType из элемента списка Item Item: Элемент списка Principal: Пользователь или группа. Параметр может быть следующих типов: Principal, User, Group RoleType: Тип стандартной роли для удаления |
DeletePermissionByRoleType(SPWeb Web, SPPrincipal Principal, SPRoleType RoleType) | Удаление прав пользователя или группы Principal определенного типа RoleType из узла Web: Узел. Principal: Пользователь или группа. Параметр может быть следующих типов: Principal, User, Group RoleType: Тип стандартной роли для удаления |
DeletePermissionByRoleType(SPList List, SPPrincipal Principal, SPRoleType RoleType) | Удаление прав пользователя или группы Principal определенного типа RoleType из списка List: Список. Principal: Пользователь или группа. Параметр может быть следующих типов: Principal, User, Group RoleType: Тип стандартной роли для удаления |
DeletePermissions(SPListItem Item, SPPrincipal Principal, Boolean ExceptRestrictedRead) | Удаление всех прав пользователя или группы Principal из элемента списка Item. Item: Элемент списка Principal: Пользователь или группа. Параметр может быть следующих типов: Principal, User, Group ExceptRestrictedRead: Если true, то удалятся все уровни разрешений, кроме “Ограниченный доступ” (или “Restricted Read” для англоязычных сайтов). Значение по умолчанию: true |
DeletePermissions(SPWeb Web, SPPrincipal Principal, Boolean ExceptRestrictedRead) | Удаление всех прав пользователя или группы Principal из узла. Web: Узел. Principal: Пользователь или группа. Параметр может быть следующих типов: Principal, User, Group ExceptRestrictedRead: Если true, то удалятся все уровни разрешений, кроме “Ограниченный доступ” (или “Restricted Read” для англоязычных сайтов). Значение по умолчанию: true |
DeletePermissions(SPList List, SPPrincipal Principal, Boolean ExceptRestrictedRead) | Удаление всех прав пользователя или группы Principal из списка. List: Список. Principal: Пользователь или группа. Параметр может быть следующих типов: Principal, User, Group ExceptRestrictedRead: Если true, то удалятся все уровни разрешений, кроме “Ограниченный доступ” (или “Restricted Read” для англоязычных сайтов). Значение по умолчанию: true |
DeletePermissionsExceptList(SPListItem Item, SPPrincipal Principal, List<String> ExceptRoleDefinitionNameList, Boolean ExceptRestrictedRead) | Удаление всех прав пользователя или группы Principal из элемента списка Item, кроме ExceptRoleDefinitionList. Item: Элемент списка Principal: Пользователь или группа. Параметр может быть следующих типов: Principal, User, Group ExceptRoleDefinitionNameList: Список названий уровней разрешений, которые необходимо оставить. ExceptRestrictedRead: Если true, то удалятся все уровни разрешений, кроме “Ограниченный доступ” (или “Restricted Read” для англоязычных сайтов). Значение по умолчанию: true |
DeletePermissionsExceptList(SPWeb Web, SPPrincipal Principal, List<String> ExceptRoleDefinitionNameList, Boolean ExceptRestrictedRead) | Удаление всех прав пользователя или группы Principal из узла, кроме ExceptRoleDefinitionList. Web: Узел Principal: Пользователь или группа. Параметр может быть следующих типов: Principal, User, Group ExceptRoleDefinitionNameList: Список названий уровней разрешений, которые необходимо оставить. ExceptRestrictedRead: Если true, то удалятся все уровни разрешений, кроме “Ограниченный доступ” (или “Restricted Read” для англоязычных сайтов). Значение по умолчанию: true |
DeletePermissionsExceptList(SPList List, SPPrincipal Principal, List<String> ExceptRoleDefinitionNameList, Boolean ExceptRestrictedRead) | Удаление всех прав пользователя или группы Principal из списка, кроме ExceptRoleDefinitionList. List: Список Principal: Пользователь или группа. Параметр может быть следующих типов: Principal, User, Group ExceptRoleDefinitionNameList: Список названий уровней разрешений, которые необходимо оставить. ExceptRestrictedRead: Если true, то удалятся все уровни разрешений, кроме “Ограниченный доступ” (или “Restricted Read” для англоязычных сайтов). Значение по умолчанию: true |
IsEquivalent(SPPrincipal Principal, SPPrincipal ComparePrincipal) | Сравнение Principal’ов по Title’ам без учета регистра Principal: Пользователь или группа ComparePrincipal: Пользователь или группа |
Samples
/// <summary>
/// Добавляет права пользователю или группе.
/// </summary>
/// <param name="item">Элемент списка</param>
/// <param name="principal">SPGroup or SPUser</param>
private void AddPermissions(SPListItem item, SPPrincipal principal)
{
// добавление прав "Совместная работа" группе "Ulteam Site - посетители" на элемент спика item.
item.AddRoleAssignment(principal, "Совместная работа");
// то же самое, только используя RoleDefinition
SPRoleDefinition roleDefinition = item.Web.GetRoleDefinition("Совместная работа");
item.AddRoleAssignment(principal, roleDefinition);
}
/// <summary>
/// Замена прав пользователя или группы.
/// </summary>
/// <param name="item">Элемент списка</param>
/// <param name="principal">SPGroup or SPUser</param>
private void ChangePermissions(SPListItem item, SPPrincipal principal)
{
// замена прав у группы с "Совместная работа" на "Чтение"
item.ChangeRoleAssignment(principal, "Совместная работа", "Чтение");
// то же самое, используя RoleDefinition'ы
SPRoleDefinition deleteRoleDefinition = item.Web.GetRoleDefinition("Совместная работа");
SPRoleDefinition addRoleDefinition = item.Web.GetRoleDefinition("Чтение");
item.ChangeRoleAssignment(principal, deleteRoleDefinition, addRoleDefinition);
}
/// <summary>
/// Удаление прав определенного типа у всех пользователей или групп.
/// </summary>
/// <param name="item">Элемент списка</param>
private void DeleteAllPermissions(SPListItem item)
{
// удаление прав "Совместная работа" у всех пользователей и групп.
item.DeletePermissionsByRoleTitle("Совместная работа");
// то же самое, используя RoleDefinition
SPRoleDefinition roleDefinition = item.Web.GetRoleDefinition("Совместная работа");
item.DeletePermissionsByRoleDefinition(roleDefinition);
// то же самое, используя RoleType
item.DeletePermissionsByRoleType(SPRoleType.Contributor);
}
/// <summary>
/// Удаление всех прав у пользователя или группы.
/// </summary>
/// <param name="item">Элемент списка</param>
/// <param name="principal">SPGroup or SPUser</param>
private void DeleteAllPermissionsByPrincipal(SPListItem item, SPPrincipal principal)
{
// удаление всех уровней разрешений для группы, кроме "Ограниченный доступ"
item.DeletePermissions(principal);
List<string> roleDefinitionNameList = new List<string>
{
"Чтение",
"Только просмотр"
};
// удаление всех уровней разрешений для группы, кроме "Чтение", "Только просмотр" и "Ограниченный доступ"
item.DeletePermissionsExceptList(principal, roleDefinitionNameList);
}
/// <summary>
/// Удаление определенных прав пользователя или группы.
/// </summary>
/// <param name="item">Элемент списка</param>
/// <param name="principal">SPGroup or SPUser</param>
private void DeletePermissionByPrincipal(SPListItem item, SPPrincipal principal)
{
// удаление прав "Совместная работа" у всех пользователей и групп.
item.DeletePermissionByRoleTitle(principal, "Совместная работа");
// то же самое, используя RoleDefinition
SPRoleDefinition roleDefinition = item.Web.GetRoleDefinition("Совместная работа");
item.DeletePermissionByRoleDefinition(principal, roleDefinition);
// то же самое, используя RoleType
item.DeletePermissionByRoleType(principal, SPRoleType.Contributor);
}
/// <summary>
/// Получение всех пользователей и групп, имеющих права на элемент списка.
/// </summary>
/// <param name="item">Элемент списка</param>
private List<SPPrincipal> GetPrincipalsExceptList(SPListItem item)
{
List<string> roleDefinitionNameList = new List<string>
{
"Чтение",
"Только просмотр"
};
// получение всех пользователей и групп,
// у которых есть какие-нибудь уровни разрешений на элемент Item,
// кроме "Чтение", "Только просмотр" и "Ограниченный доступ"
return item.GetPrincipalsExceptList(roleDefinitionNameList);
}
/// <summary>
/// В этом примере все права (кроме прав "Полный доступ") у всех пользователей и групп заменяются на права "Чтение".
/// Плюс добавляются отдельно права "Совместная работа" для создателя элемента списка.
/// </summary>
/// <param name="item">Элемент списка</param>
private void SetPermissions(SPListItem item)
{
SPFieldUserValue authorValue = item.GetValueAsUser("Author");
SPPrincipal authorPrincipal = item.Web.SiteUsers.GetByID(authorValue.LookupId);
SPRoleDefinition editorRoleDefinition = item.Web.GetRoleDefinition("Совместная работа");
SPRoleDefinition readerRoleDefinition = item.Web.GetRoleDefinition("Чтение");
// получаем список всех пользователей и групп с правами, кроме ограниченного доступа
List<SPPrincipal> principalList = item.GetPrincipals();
// добавляем всем права на чтение
foreach (SPPrincipal principal in principalList)
item.AddRoleAssignment(principal, readerRoleDefinition);
// удаляем права у всех остальных пользователей или групп, кроме прав "Чтение" и "Полный доступ"
List<string> exceptRoleDefinitionList = new List<string>
{
"Чтение",
"Полный доступ"
};
foreach (SPPrincipal principal in principalList)
item.DeletePermissionsExceptList(principal, exceptRoleDefinitionList, true);
// добавляем инициатору отдельные права "Совместная работа"
item.AddRoleAssignment(authorPrincipal, editorRoleDefinition);
}