none
раздача прав разным Content type RRS feed

  • Вопрос

  • Здравствуйте! Есть два типа юзера:

    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