Quels sont les moyens décents d'empêcher les utilisateurs de créer des espaces de travail de réunion?

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

  •  02-07-2019
  •  | 
  •  

Question

J'ai une liste d'événements dans SharePoint et je dois empêcher les utilisateurs de créer des espaces de travail de réunion dans le nouveau formulaire d'événement. Timide de personnaliser le nouveau formulaire d’événement (ce qui casse la prise en charge des pièces jointes), comment peut-on y arriver?

Était-ce utile?

La solution

Par défaut, pour que les utilisateurs puissent créer un espace de travail de réunion, ils doivent être administrateur ou propriétaire du site (ils ont notamment besoin de l'autorisation Créer des sites). Si vous ne leur donnez pas cette autorisation, ils ne pourront pas créer d'espace de travail de réunion.

Ceci interdira à l'utilisateur de créer un site sur le site où ces autorisations sont définies. Je ne suis pas au courant d'un moyen de restreindre l'accès à une définition de site spécifique tout en permettant aux utilisateurs d'en créer une autre.

Autres conseils

Je ne pense pas qu'il y ait une manière soutenue de faire cela. Une option consiste à modifier le fichier WEBTEMP.XML dans C: \ Program Files \ Fichiers communs \ Microsoft Shared \ extensions de serveur Web \ 12 \ TEMPLATE \ 1033 \ XML \ WEBTEMP.XML (faites d'abord une sauvegarde, bien sûr). Mettez en commentaire les lignes comme suit:

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

Après avoir édité ce fichier et exécuté IISRESET sur chaque serveur de la batterie, vous ne devriez plus pouvoir créer un espace de travail de réunion.

Si vous pouvez insérer du code javascript dans la page principale, je viens avec ce petit bidouillage.

Il y a quelques inconvénients en ce que MS pourrait potentiellement libérer un correctif logiciel ou un service pack qui:

  • modifie le nom de "Utiliser un espace de travail de réunion pour organiser les participants, les ordres du jour, les documents, les procès-verbaux et d'autres détails relatifs à cet événement". case à cocher telle que la chaîne " CrossProjectLinkField " n'est plus dans le nom, ou ...

  • ils pourraient utiliser cette même chaîne dans le nom d'un autre élément d'entrée sur un autre balisage OOTB

Dans le cas du ladder (ce dont je ne suis pas tout à fait sûr est faux pour le moment), ces entrées seraient désactivées si elles arboraient une page maître qui exécutait ce script.

Mais c’est un risque auquel je peux faire face. Vous courez ces risques chaque fois que vous dépendez des identifiants client et des noms émis par le contrôle de quelqu'un d'autre.

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

Cela permet de trouver la case à cocher qui permet aux utilisateurs de créer des espaces de travail de réunion et de la désactiver pour ne pas pouvoir la consulter. Problème résolu!

Créez une fonctionnalité Web avec un récepteur de fonctionnalité qui supprime le site Web actuel sur lequel la fonctionnalité est activée et demandez-lui de générer une exception SPException indiquant que le modèle ne peut pas être utilisé. Créez ensuite une agrafeuse de fonctionnalité d'application Web ou étendue à la ferme qui agrafe la fonctionnalité précédente aux définitions de site que vous souhaitez empêcher. Activez cette fonctionnalité sur l'application Web ou la batterie. Ensuite, lorsque quelqu'un crée un site à partir de l'une de ses définitions, le site sera supprimé et une page d'erreur s'affichera avec une page d'erreur affichant le texte de l'exception SPException levée.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top