Quali sono alcuni modi decenti per impedire agli utenti di creare spazi di lavoro per riunioni?

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

  •  02-07-2019
  •  | 
  •  

Domanda

Ho un elenco Eventi in sharepoint e devo impedire agli utenti di avere la possibilità di creare aree di lavoro riunioni nel nuovo modulo eventi. Timido di personalizzare il nuovo modulo evento (che interrompe il supporto degli allegati), come è possibile farlo?

È stato utile?

Soluzione

Per impostazione predefinita, affinché gli utenti possano creare uno spazio di lavoro per le riunioni, dovranno essere un amministratore o il proprietario del sito (in particolare avranno bisogno dell'autorizzazione per la creazione di siti). Se non concedi loro questa autorizzazione, non saranno in grado di creare un'area di lavoro della riunione.

Ciò impedirà all'utente di creare qualsiasi sito sotto il sito in cui sono impostate queste autorizzazioni. Non sono a conoscenza di un modo per limitare l'accesso a una specifica definizione del sito, ma consento comunque agli utenti di crearne uno diverso.

Altri suggerimenti

Non penso che ci sia un modo supportato per farlo. Un'opzione è quella di modificare il file WEBTEMP.XML in C: \ Programmi \ File comuni \ Microsoft Shared \ Web server extensions \ 12 \ TEMPLATE \ 1033 \ XML \ WEBTEMP.XML (eseguire innanzitutto un backup). Commenta le righe come segue:

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

Dopo aver modificato questo file ed eseguito IISRESET su tutti i server della farm, non dovresti più essere in grado di creare un'area di lavoro della riunione.

Se riesci a ottenere un po 'di javascript nella pagina principale, ho pensato a questo piccolo trucco.

Ha un paio di svantaggi in quanto MS potrebbe potenzialmente ricollegare un hotfix o un service pack che:

  • modifica il nome di " Utilizza uno spazio di lavoro per riunioni per organizzare partecipanti, ordini del giorno, documenti, minuti e altri dettagli per questo evento " casella di controllo in modo tale che la stringa "CrossProjectLinkField" non è più nel nome o ...

  • potrebbero usare la stessa stringa nel nome di qualche altro elemento di input su qualche altro markup OOTB

Nel caso ladder (che non sono del tutto sicuro al momento è falso), questi input verrebbero disabilitati se sfoggiassero una pagina master che eseguiva questo script.

Ma questo è un rischio che posso affrontare. Corri questi rischi ogni volta che dipendi dagli ID client e dai nomi emessi dal controllo di qualcun altro.

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

Ciò che fa è trovare la casella di controllo che consente agli utenti di creare aree di lavoro riunioni e la disabilita in modo che non possano controllarla. Problema risolto!

Crea una funzionalità con ambito Web con un ricevitore di funzionalità che elimina il Web corrente su cui è attivata la funzione e invia una SPException indicando che il modello non può essere utilizzato. Quindi creare un'applicazione Web o una pinzatrice di funzionalità nell'ambito della farm che esegue la pinzatura della funzione precedente alle definizioni del sito che si desidera impedire. Attiva quella funzionalità nell'applicazione Web o nella farm. Quindi, quando qualcuno crea un sito da una delle definizioni del sito, il sito verrà eliminato e all'utente verrà presentata una pagina di errore che mostra il testo dell'SPException generato.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top