Una delle funzionalità offerte dalle Feature di Sharepoint 2007 è la possibilità, in singoli siti o intere site collection, di nascondere una o più azioni presenti di default nel layout di base dei siti sharepoint e nelle pagine di amministrazione. Possiamo per esempio nascondere un link dal menu "Site Actions", o dalle pagine di amministrazione del sito, per evitare che l'utente finale utilizzi particolari funzionalità di sharepoint.
Questo è possibile creando una feature di questo tipo:
feature.xml
<?xml version="1.0" encoding="utf-8" ?>
<Feature xmlns="http://schemas.microsoft.com/sharepoint/"
Title="Disabilita azione elimina sito"
Id="fd45b845-bc19-48b2-9c39-63f23262f956"
Scope="Web"
Creator="Giuseppe Marchi (www.peppedotnet.it)"
Description="Feature per la rimozione dell'azione elimina sito">
<ElementManifests>
<ElementManifest Location="elements.xml" />
</ElementManifests>
</Feature>
e utilizzando l'elemento HideCustomAction, che permette appunto, di nascondere l'azione che non vogliamo far utilizzare all'utente finale.
elements.xml
<?xml version="1.0" encoding="utf-8" ?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<HideCustomAction
GroupId="SiteManagement"
HideActionId="DeleteSite"
Id="DisabilitaEliminaSito"
Location="Microsoft.SharePoint.Administration.ApplicationManagement">
</HideCustomAction>
</Elements>
Questa funzionalità mi è risultata subito molto comoda. L'unico problema è che inizialmente non trovavo nella documentazione l'elenco di tutti gli ID delle azioni disponibili. Ho trovato però questa lista, che risulta davvero utile:
http://www.pings.dk/blog/misc/customactionsutil/customactions.htm
TAGS: [ Sharepoint] [ WSS 3.0] [ MOSS] [ Feature]
|
COMMENTI
|
Autore: Daniele
- scritto il 8/4/2008 11:03:53 AM
Ciao Giuseppe, ho provato questa feature ma non capisco quale menu dovrebbe essere nascosto, perchè a livello di sito in azioni sito vedo sempre il link elimena sito (ho wss in italiano). Mi piacerebbe poter impedire ad un utente di eliminare accidentalemente una site collection, un sito dovrebbe poterlo fare ma una site connection no. Ho provato anche a mettere Site come scope al posto di Web ma non è cambiato nulla.
Autore: Peppe
- scritto il 8/4/2008 11:11:58 AM
Ciao Daniele.
Scusa la domanda banale. Ma prima di fare una prova, vorrei essere sicuro che tu l'abbia attivata la feature qui sopra. E' così ?
Questa feature elimina il tasto "Elimina sito" dai "Site settings di una sito sharepoint. Per farla a livello di site collection, in teoria, dovrebbe bastare il cambiamento di Scope, ma questo però non l'ho provato.
Autore: daniele
- scritto il 8/4/2008 1:48:01 PM
Si Peppe, ho installato e attivato la feature ma non mi è sparito alcun link, ho creato il file feature cambiando anche il GUID (generato dal tool di visual studio 2005). Ma il link non è scomparso. Mi permetto di farti i complimenti per l'ottimo lavoro di divulgazione in italiano che hai fatto su sharepoint, ho letto tutto quello che hai pubblicato in questo sito. A quando un libro sulla materia? Non hai nulla in merito al branding dei siti con wss 3.0. Non ho trovato tutorial molto espicativi su come cambiare la grafica dei siti sharepoint, su come creare siti funzionali che si basino sulle liste ma che non le mostrino direttamente, troco che sia un argomento poco esplorato.
Autore: Peppe
- scritto il 8/4/2008 1:55:07 PM
Grazie per i complimenti ! Sono sempre ben accetti !
Un libro sulla materia in italiano effettivamente manca.. magari..
Mi trovo d'accordo con te per quanto riguarda la parte delle feature di publishing di moss 2007. C'è poco e niente in giro. Però è tutto un lavoro di master page, content page e user controls, sviluppati o con Sharepoint Designer o con Visual Studio, che poi vanno deployate su sharepoint attraverso delle feature.
Per quanto riguarda invece, il nostro problema di partenza, ho bisogno di un pò di tempo per riprovare quella feature, così riesco a testare quanto mi dici.
A presto
Autore: Daniele
- scritto il 8/4/2008 3:52:30 PM
Ti segnalo che purtroppo il link alla table delle custom actions è ormai irraggiungibile; peccato. Ho trovato il link ad un articolo dell'autore della lista che fa riferimento ad un codice sorgente per recuperare tutti gli id di action, ma purtroppo anche questo file è irraggiungibile (http://www.johnholliday.net/post/2007/10/28/How-to-find-lt3bCustomActiongt3b-identifiers.aspx).
Autore: Peppe
- scritto il 8/4/2008 5:22:42 PM
Ne ho trovato uno io.. ecco qua:
http://www.pings.dk/blog/misc/customactionsutil/customactions.htm
Autore: Peppe
- scritto il 8/4/2008 5:50:28 PM
Ok ci sono.
Funziona mettendo come scope "Site", in quanto l'operazione DeleteSite è quella riferita alle Site Collection, mentre DeleteWeb è riferita a siti singoli.
Se provi ad installarla con lo scope alla site collection, il link non sparisce, ma se un utente (non site collection admin) prova a cancellare la site collection, viene fermato con un Access Denied error. Anche se ha permessi di Full Control sul sito.
Eppure mi sembrava di averla provata tempo fa questa feature.. vabbè.. meglio così :)
Autore: Daniele
- scritto il 8/5/2008 9:07:55 AM
Grazie mille. Provo subito. Grazie anche per il link. Ho un altro quesito da sottoporti in merito alle custom list, come preferisci che lo faccia? Va bene via mail, magare ne esce un argomento per il blog. Fammi sapere se posso disturbarti.
Autore: Peppe
- scritto il 8/5/2008 9:21:56 AM
Come preferisci tu Daniele.. la mail la trovi infondo alla pagina.. oppure facendo ALT + S e INVIO ;)