Каковы несколько достойных способов запретить пользователям создавать рабочие пространства для собраний?

StackOverflow https://stackoverflow.com/questions/118678

  •  02-07-2019
  •  | 
  •  

Вопрос

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

Это было полезно?

Решение

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

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

Другие советы

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

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

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

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

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

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

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

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

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

<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>

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top