Периодически встает вопрос, как можно пользователям запретить создавать списки и библиотеки некоторых шаблонов. Например, как сделать, чтобы пользователи не смогли создать новую библиотеку документов?

Когда пользователь с соответствующими правами хочет создать список или библиотеку на сайте, то видно большое количество шаблонов. Некоторые шаблоны скрыты, поскольку в них указано соответствующее свойство, хотя программное создание все равно возможно.

Можно открыть Параметры сайта и посмотреть список Возможностей сайта:

На большинстве сайтов будет включена возможность:

Описание возможности находится в директории:

C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\FEATURES\TeamCollab

Откройте файл Feature.xml

Вот, что внутри:

<?xml version="1.0" encoding="utf-8"?>

<Feature

Id="00BFEA71-4EA5-48D4-A4AD-7EA5C011ABE5"

Title="$Resources:core,teamcollabFeatureTitle;"

Version="14.0.0.0"

Description="$Resources:core,teamcollabFeatureDesc;"

ImageUrl="WssTeamCollaborationFeature.gif"

ImageUrlAltText=""

Scope="Web"

DefaultResourceFile="core"

xmlns="http://schemas.microsoft.com/sharepoint/">

<ActivationDependencies>

<!-- AnnouncementsList Feature -->

<ActivationDependency FeatureId="00BFEA71-D1CE-42de-9C63-A44004CE0104"/>

<!-- ContactsList Feature -->

<ActivationDependency FeatureId="00BFEA71-7E6D-4186-9BA8-C047AC750105"/>

<!-- CustomList Feature -->

<ActivationDependency FeatureId="00BFEA71-DE22-43B2-A848-C05709900100"/>

<!-- DataSourceLibrary Feature -->

<ActivationDependency FeatureId="00BFEA71-F381-423D-B9D1-DA7A54C50110"/>

<!-- DiscussionsList Feature -->

<ActivationDependency FeatureId="00BFEA71-6A49-43FA-B535-D15C05500108"/>

<!-- DocumentLibrary Feature -->

<ActivationDependency FeatureId="00BFEA71-E717-4E80-AA17-D0C71B360101"/>

<!-- EventsList Feature -->

<ActivationDependency FeatureId="00BFEA71-EC85-4903-972D-EBE475780106"/>

<!-- ExternalList Feature -->

<ActivationDependency FeatureId="00BFEA71-9549-43f8-B978-E47E54A10600"/>

<!-- GanttTasksList Feature -->

<ActivationDependency FeatureId="00BFEA71-513D-4CA0-96C2-6A47775C0119"/>

<!-- GridList Feature -->

<ActivationDependency FeatureId="00BFEA71-3A1D-41D3-A0EE-651D11570120"/>

<!-- IssuesList Feature -->

<ActivationDependency FeatureId="00BFEA71-5932-4F9C-AD71-1557E5751100"/>

<!-- LinksList Feature -->

<ActivationDependency FeatureId="00BFEA71-2062-426C-90BF-714C59600103"/>

<!-- NoCodeWorkflowLibrary Feature -->

<ActivationDependency FeatureId="00BFEA71-F600-43F6-A895-40C0DE7B0117"/>

<!-- PictureLibrary Feature -->

<ActivationDependency FeatureId="00BFEA71-52D4-45B3-B544-B1C71B620109"/>

<!-- SurveysList Feature -->

<ActivationDependency FeatureId="00BFEA71-EB8A-40B1-80C7-506BE7590102"/>

<!-- TasksList Feature -->

<ActivationDependency FeatureId="00BFEA71-A83E-497E-9BA0-7A5C597D0107"/>

<!-- WebPageLibrary Feature -->

<ActivationDependency FeatureId="00BFEA71-C796-4402-9F2F-0EB9A6E71B18"/>

<!-- WorkflowProcessLibrary Feature -->

<ActivationDependency FeatureId="00BFEA71-2D77-4A75-9FCA-76516689E21A"/>

<!-- WorkflowHistoryList Feature -->

<ActivationDependency FeatureId="00BFEA71-4EA5-48D4-A4AD-305CF7030140"/>

<!-- XmlFormLibrary Feature -->

<ActivationDependency FeatureId="00BFEA71-1E1D-4562-B56A-F05371BB0115"/>

</ActivationDependencies>

</Feature>

 

Как видите, при активации возможности активируется целый ряд возможностей, каждая отвечает за соответствующий шаблон списка или библиотеки. Дело в том, что все эти возможности скрыты из интерфейса.

Их можно активировать и деактивировать программным способом или через PowerShell:

Enable-SPFeature и Disable-SPFeature

http://technet.microsoft.com/ru-ru/library/ff607803.aspx

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

Другой вариант может заключаться в создании специального конфигурационного списка на сайте, где администратор будет указывать, кому и какие шаблоны можно использовать для создания, а на специальной административной странице или веб части пользователю можно будет инициировать создание списков и библиотек по шаблонам.

Хочу отметить, что на сайтах публикации механизм, ограничивающий создание дочерних сайтов и страниц по определенным шаблонам имеется штатно в пользовательском интерфейсе.