Фильтрация списка SharePoint по текущему члену пользователя в группе

У меня есть онлайн-список SharePoint, на сайте, где у всех в организации есть доступ для чтения. Список состоит из 3 столбцов: заголовок, ссылка, сайт и представляет собой оглавление страниц с разных сайтов SharePoint с разными участниками. Список заполняется потоками, которые запускаются, когда страница публикуется, и ее имя следует шаблону.

Например:

Статья1 | Ссылка на статью1 | Финансовый

Статья2 | Ссылка на статью2 | Администрация

Я хотел бы отфильтровать этот список, чтобы каждый пользователь видел только ссылки на сайты, участником которых он является.

Глядя на приведенный выше пример, если текущий пользователь является членом Финансовой команды, но не членом Администрации, он должен видеть только Статью 1.

Можно ли сделать это с помощью фильтрации представления SharePoint или форматирования представления json?

Спасибо!


person cpatenta    schedule 26.11.2019    source источник


Ответы (1)


Вы можете добавить четвертый столбец (Группа) с типом Пользователь / Группа в список и заполнить его группой или группами, которые должны его просмотреть. После этого вы можете использовать элемент CAML Членство для фильтрации.

По сути, ваш SPView.Query должен выглядеть примерно так (если ShowForGroups - внутреннее имя столбца, содержащего группы):

<Where>
   <Or>
      <Eq>
         <FieldRef Name="ShowForGroups" />
         <Value Type="Integer">
            <UserID />
         </Value>
      </Eq>
      <Membership Type="CurrentUserGroups">
         <FieldRef Name="ShowForGroups" />
      </Membership>
   </Or>
</Where>

Однако вы не сможете создать такое представление с помощью страницы создания представления SharePoint, для этого вам нужно будет использовать PowerShell.

person pavelgz    schedule 26.11.2019
comment
Спасибо! Это сработало! Я ничего не знал о CAML или использовании PowerShell, но ваш ответ был хорошей отправной точкой. - person cpatenta; 27.11.2019