Sharepoint 10 списков: хотите ограничить поля формы для групп пользователей - PullRequest
2 голосов
/ 13 января 2012

Я создаю систему подачи заявок на обслуживание, используя функциональность списков SharePoint 10. Я хочу скрыть некоторые поля формы от конечного пользователя при заполнении формы, но хочу, чтобы администраторы увидели все поля формы. Одним из примеров было бы скрытие конечных пользователей поля формы «Назначено:». Не уверен, как это сделать. Заранее спасибо.

Ответы [ 6 ]

3 голосов
/ 13 января 2012

Загрузите JQuery и SPServices библиотеки и поместите их в библиотеку документов только для чтения или в свой 14 Hive, в зависимости от того, что вам подходит. Затем отредактируйте файл NewForm.aspx (с помощью SP Designer) и добавьте ссылки на эти два файла.

Добавьте тег сценария со следующим:

$(document).ready(function() {
    Admin_Group = "My Group Name";
    if(IsGroupMember(Admin_Group))
    {
        $('input[title="Assigned To"]').parent().parent().css("display","none");
    }
});


function IsGroupMember(GroupName)
{
    var isGroupMember = false;
    $().SPServices({
            operation: "GetGroupCollectionFromUser",
            userLoginName: $().SPServices.SPGetCurrentUser(),
            async: false,
            completefunc: function(xData, Status) {
              if($(xData.responseXML).find("Group[Name='" + GroupName + "']").length == 1)                
              {
                  isGroupMember = true;
              }
            }
    });
    return isGroupMember;
}

Возможно, вам придется проверить, правильно ли селектор ввода обращается к назначенному или какому-либо полю, которое вам нужно скрыть, но я использовал этот подход успешно во многих ситуациях. Убедитесь, что поле, которое вы скрываете, не является обязательным. Также не забудьте также скрыть это в EditForm.aspx, если это то, что вам нужно.

1 голос
/ 13 января 2012

Вы можете сделать это, отредактировав форму просмотра / редактирования в конструкторе SharePoint или InfoPath, но вам нужно немало знаний о XSLT или InfoPath для выполнения подобных трюков. Для InfoPath смотрите: http://blog.symprogress.com/2011/05/infopath-list-form-hidedisable-fields-based-on-sharepoint-group-membership/

Или вы можете создавать собственные веб-части для каждого необходимого элемента с помощью Visual Studio.

Или вы можете использовать такой продукт, который, безусловно, является самым простым: http://store.bamboosolutions.com/sharepoint-column-level-security.aspx

0 голосов
/ 30 сентября 2016

Мой ответ похож на ответ Павла, но структурирован немного по-другому. У нас были такие же требования в форме списка, хотя в нашем случае мы скрывали определенные элементы, основанные на членстве в группах. Вам нужно будет сделать следующее:

  • Добавьте ссылку на jQuery и SPServices на главной странице или в форме редактирования. Мы используем параметр главной страницы в нашей среде.
  • В идеале, создайте новую форму редактирования для вашего списка и сделайте ее по умолчанию. Как правило, это не очень хорошая идея, чтобы изменить ванильные формы, если вы можете помочь.
  • Откройте форму редактирования в SharePoint Designer и добавьте в нее следующий скрипт:

$(document).ready(function() {
  $().SPServices({
    operation: “GetGroupCollectionFromUser”,
    userLoginName: $().SPServices.SPGetCurrentUser(),
    async: false,
    completefunc: function(xData, Status) {
      if ($(xData.responseXML).find(“Group[Name = ’Engineering’]”).length == 1) {
        // alert(“You shouldnt see the button.”);
        $(“input[id = ’AcctBtn’]”).hide();
      }
    }
  });
});

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

0 голосов
/ 11 февраля 2013

Мы используем Инструмент Sharepoint Forms Designer . Позволяет создавать конкретные формы для разных групп sharepoint.

0 голосов
/ 13 января 2012

Мне пришлось сделать то же самое в моей организации, где мы создавали систему службы поддержки.Пользователям нужно было всего несколько полей, таких как «Тема», «Описание», «Срок выполнения», где у сотрудников службы поддержки было множество полей, включая заметки, назначенные и т. Д.

Самый простой способ - создать пользовательскую NewForm.aspx для списка.

Это можно сделать в конструкторе SharePoint, скопировав существующий NewForm.aspx, вставив пользовательскую форму списка на страницу, установив для атрибута Visible на существующем значение false, а затем удаливстроки информации, которую вы не хотите, чтобы ваши пользователи видели.

Затем просто примените этот NewForm_Trimmed.aspx в качестве новой формы по умолчанию, и это должно сделать это.

РЕДАКТИРОВАТЬ: SharePoint Designer 2010 делаетэтот процесс проще ... Перейдите по этой ссылке: http://office.microsoft.com/en-us/sharepoint-designer-help/create-a-custom-list-form-using-sharepoint-designer-HA010378258.aspx

0 голосов
/ 13 января 2012

Я знаю, что вы можете создавать представления списка, которые в основном являются представлениями из шаблона MVC, которые могут представлять оригинал списка. В вашем случае это будет похоже на просмотр списка заявок менеджеров и просмотр списка заявок TI. Вы должны искать в списках просмотров для sharepoint. Надеюсь, это поможет.

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