Скрыть строки элементов (целую строку) в представлении списка на основе членства в группе пользователей с помощью служб javascript / SP в SharePoint - PullRequest
0 голосов
/ 13 марта 2020

Как скрыть полную строку элемента на основе членства в группе пользователя (или значения столбца). У меня есть это представление списка:

enter image description here

Я хочу скрыть полную строку элемента на основе членства пользователей в группах отделов (группы SharePoint, содержащие пользователей из разных отделов Legal , Project Mngmt et c). Так что каждый уходящий сотрудник просматривает только свои записи. Я не хочу использовать целевую аудиторию в веб-части представления списка.

Я использовал этот код для скрытия полей в форме, но как использовать его для всей строки элемента в представлении списка?

$(document).ready(function() {
  $().SPServices({
    operation: "GetGroupCollectionFromUser",
    userLoginName: $().SPServices.SPGetCurrentUser(),
    async: false,
       completefunc: function (xData, Status) {
       var flag = ($(xData.responseXML).find("Group[Name='LegalDepartment']").length == 1);
       if (!flag)
        {
            //To Hide Column Header
            $("nobr:contains('User ID')").closest('tr').hide();
        }
       }
    })
})

Как это возможно через сервисы SP / javascript?

1 Ответ

0 голосов
/ 13 марта 2020

Пока я понял ваше требование. Возможны два подхода: Первый подход - установка разрешений на уровне элемента. Это может быть достигнуто с помощью REST API, а также JSOM. Пожалуйста, отметьте здесь

Второй подход состоит в том, чтобы получить членство в текущей группе пользователей, чтобы получить группы, членами которых является пользователь (пожалуйста, отметьте здесь для Код JSOM). Как только группы выбраны, их можно сопоставить с желаемым столбцом, например, Department или Assigned to, и DOM представления списка можно соответствующим образом манипулировать, чтобы показать / скрыть каждую строку.

Я бы предпочел первый подход, так как это строго следует принципам безопасности SharePoint, чтобы удалить права пользователя на определенный элемент. Во-вторых, подход, однако, кажется небезопасным, как если бы пользователю удалось показать строку, назначенную другому отделу (членом которой он не является), с помощью инструментов браузера или чего-либо еще, он все еще может редактировать эту строку в зависимости от своих прав на список / библиотеку в целом. вам может потребоваться создать рабочий процесс SharePoint, чтобы установить разрешения на уровне элементов на основе нужных столбцов события создания элемента. Пожалуйста, проверьте это для деталей. Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...