Лучший отвечающий
раздача прав разным Content type

Вопрос
-
Здравствуйте! Есть два типа юзера:
1)пользак
2)Супер-пользак
Есть список Коллективное обсуждение.
Мне нужно чтобы при создании обсуждения(discussion) - его мог редактировать автор(это пользак или супер -пользак) и супер-пользак
При создании сообщения(reply) его мог редактировать только автор.
Через SPD Workflow не получается так как там навешиваются права на весь элемент а не на конкретный контент тайп.
Вообщем как решить задачу ? Спасибо!
24 декабря 2015 г. 9:39
Ответы
-
Вообщем сделал через EventReciver
Смысл то прост...даже не знаю что я сразу не догнал...устал видимо)
SPListItem один для обоих типов контента.
Достаточно было просто...
смотреть какой тип контента(ListItem.ContentType.Name) щас сохраняется или обновляется
и в зависимости какой тип контента нужно назначать права. => юзаем(кусок кода):
public void AssignPermissionsToItem(SPListItem item, SPPrincipal obj, SPRoleType roleType) { SPRoleAssignment roleAssignment = new SPRoleAssignment(obj); SPRoleDefinition roleDefinition = item.Web.RoleDefinitions.GetByType(roleType); roleAssignment.RoleDefinitionBindings.Add(roleDefinition); item.RoleAssignments.Add(roleAssignment); }
и в конце заюзал
this.EventFiringEnabled = false;
item.Update();
this.EventFiringEnabled = true;
Так что мой вопрос больше путает знающего человека, чем наводит на какой то ответ. Так, что пардон... сам тупанул.
- Помечено в качестве ответа Kadackiy Dmitriy 24 декабря 2015 г. 16:34
- Изменено Kadackiy Dmitriy 24 декабря 2015 г. 16:35
24 декабря 2015 г. 16:34
Все ответы
-
Вообщем сделал через EventReciver
Смысл то прост...даже не знаю что я сразу не догнал...устал видимо)
SPListItem один для обоих типов контента.
Достаточно было просто...
смотреть какой тип контента(ListItem.ContentType.Name) щас сохраняется или обновляется
и в зависимости какой тип контента нужно назначать права. => юзаем(кусок кода):
public void AssignPermissionsToItem(SPListItem item, SPPrincipal obj, SPRoleType roleType) { SPRoleAssignment roleAssignment = new SPRoleAssignment(obj); SPRoleDefinition roleDefinition = item.Web.RoleDefinitions.GetByType(roleType); roleAssignment.RoleDefinitionBindings.Add(roleDefinition); item.RoleAssignments.Add(roleAssignment); }
и в конце заюзал
this.EventFiringEnabled = false;
item.Update();
this.EventFiringEnabled = true;
Так что мой вопрос больше путает знающего человека, чем наводит на какой то ответ. Так, что пардон... сам тупанул.
- Помечено в качестве ответа Kadackiy Dmitriy 24 декабря 2015 г. 16:34
- Изменено Kadackiy Dmitriy 24 декабря 2015 г. 16:35
24 декабря 2015 г. 16:34 -
Так же эту задачу можно было реализовать и Workflow(Стандартным) в моем случае нужно было бы создать еще один уровень разрешения....короче все выполнимо))24 декабря 2015 г. 16:52