Какие есть приличные способы запретить пользователям создавать рабочие пространства для собраний? - PullRequest
1 голос
/ 23 сентября 2008

У меня есть список событий в sharepoint, и мне нужно запретить пользователям создавать рабочие пространства для собраний в новой форме событий. Как это можно сделать, стесняясь настройки новой формы события (которая нарушает поддержку вложений)?

Ответы [ 4 ]

2 голосов
/ 23 сентября 2008

По умолчанию, чтобы пользователи могли создавать рабочее пространство для собраний, им необходимо быть администратором или владельцем сайта (в частности, им потребуется разрешение «Создание сайтов»). Если вы не дадите им это разрешение, они не смогут создать рабочее пространство для собраний.

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

0 голосов
/ 21 ноября 2008

Создайте объект с веб-областью действия с помощью приемника объектов, который удаляет текущий веб-сайт, на котором активирована функция, и вызывает исключение SPException, указывающее, что шаблон не может использоваться. Затем создайте сшиватель функций веб-приложения или области фермы, который скрепляет предыдущую функцию с определениями сайтов, которые вы хотите запретить. Активируйте эту функцию в веб-приложении или ферме. Затем, когда кто-то создает сайт на основе одного из определений сайта, он будет удален, и пользователю будет показана страница с ошибкой, на которой отображается текст сгенерированного SPException.

0 голосов
/ 26 сентября 2008

Если вы можете добавить javascript на главную страницу, я придумал этот небольшой взлом.

У него есть пара недостатков в том, что MS потенциально может выпустить исправление или пакет обновления, которые либо:

  • изменяет имя флажка «Использовать рабочее пространство для собраний для организации участников, повесток дня, документов, минут и других сведений для этого события», чтобы строка «CrossProjectLinkField» больше не была в имени, или. ..

  • они могут использовать эту же строку в имени другого входного элемента в другой разметке OOTB

В случае релейной логики (который я не совсем уверен, в настоящий момент неверно) эти входные данные были бы отключены, если бы они имели мастер-страницу, на которой выполнялся этот сценарий.

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

<script type="text/javascript">    
    var anchors = document.getElementsByTagName('input');
    for(var i=0;i<anchors.length;i++)
    {
        var anchorName = anchors[i].name.match('CrossProjectLinkField');
        if(anchorName != null)
        {
            anchors[i].disabled = true;
            break;
        }
    }
</script>

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

0 голосов
/ 23 сентября 2008

Я не думаю, что есть поддерживаемый способ сделать это. Один из вариантов - отредактировать файл WEBTEMP.XML в C: \ Program Files \ Common Files \ Microsoft Shared \ расширения веб-сервера \ 12 \ TEMPLATE \ 1033 \ XML \ WEBTEMP.XML (сначала сделайте резервную копию). Закомментируйте строки следующим образом:

    <!-- <Template Name="MPS" ID="2">
    ...    
    </Template> -->

После редактирования этого файла и выполнения IISRESET на каждом сервере в ферме вы больше не сможете создавать рабочее пространство для собраний.

...