activex.net.ru

ActiveX .NET SharePoint Утилиты Скрипты Статьи ... Форум

Статьи

Скрытие видимости списков в SharePoint Server 2007 / WSS 3.0

При разработке приложений под SharePoint может возникать необходимость в хранении настроек приложения или результатов его работы в списках SharePoint.
Вместе с тем, стандартная страница "Просмотр содержимого узла" отображает пользователю все списки, на которые у данного пользователя есть права на чтение, что может быть нежелательно.
Если вариант с настройкой прав доступа к спискам и последующей работой с ними в коде приложения из-под системной учетной записи SharePoint не устраивает, то можно воспользоваться достаточно простым механизмом скрытия видимости списков.
Понятно, что приведенные ниже подходы только скрывают списки, но не защищают их по правам доступа и получить доступ к ним по прежнему можно, обратившись по прямому URL-адресу.

Рассмотрим два варианта решения задачи:

1. С использованием возможностей SharePoint Designer 2007.
Этот способ позволяет быстро скрыть списки, воспользовавшись стандартным GUI. Для этого необходимо подключиться к нужному узлу SharePoint, перейти в папку Lists и в свойствах списка выставить флаг "Скрыть от обозревателей".



2. С использованием объектной модели SharePoint 2007.
Данный способ позволяет скрыть списки с помощью кода, который может быть размещен в возможности (Feature) и активирован в выбранном узле.

public class TestsFeatureListHide : SPFeatureReceiver
{
    public override void FeatureInstalled(SPFeatureReceiverProperties properties)
    {
    }
    public override void FeatureUninstalling(SPFeatureReceiverProperties properties)
    {
    }
    public override void FeatureActivated(SPFeatureReceiverProperties properties)
    {
        SPWeb web = (SPWeb)properties.Feature.Parent;
        SPList tests = web.GetList(web.Url + "/Lists/MyTestList");
        tests.Hidden = true;
        tests.Update();
    }
    public override void FeatureDeactivating(SPFeatureReceiverProperties properties)
    {
        SPWeb web = (SPWeb)properties.Feature.Parent;
        SPList tests = web.GetList(web.Url + "/Lists/MyTestList");
        tests.Hidden = false;
        tests.Update();
    }
}
Как видно из приведенного кода, за видимость списка в объектной модели SharePoint, отвечает свойство Hidden класса SPList.


Copyright © 2000-2017 Христофоров Юрий Rambler's Top100

   Rambler's Top100