L'arte di lavorare con le WebPart - #3

Mi collego al mio precedente post #2

Piccolo scenario...avete un sito e i contenuti li inserite grazie a webparts, ognuna con il suo specifico compito di farvi editare contenuti e visualizzarli, opportunamente formattati, nel punto in cui le avete sistemate nelle vostre pagine, in apposite Zones. Sapete perfettamente che se non create verbi custom nelle webparts, il WebPartZone farà apparire il menù a tendina con i verbi di default o perlomeno customizzati, secondo quanto spiegato nel post suddetto.

Se avete bisogno di far modificare i contenuti del vostro sito ad un utente tipo "PowerUser", quindi può accedere alla webpart in modalità Edit ma non deve vedere il menù a tendina accanto ad essa,  potete fare in questo semplice modo (in grassetto è indicato il frammento di codice aggiunto al vecchio esempio):

protected override void OnCreateVerbs(WebPartVerbsEventArgs e)
{
    
base.OnCreateVerbs(e);

    WebPartManager wpm = (WebPartManager) WebPartManager.GetCurrentWebPartManager(
this.Page);

    
this.EditVerb.Visible = false;
    Collection verbs = 
new Collection();
    HttpContext ctx = HttpContext.Current;

    
if (ctx.Request.IsAuthenticated)
    {
        WebPartVerb editVerb = 
new WebPartVerb("editVerb", new WebPartEventHandler(HandleEditClick));
        verbs.Add(editVerb);
        
if (wpm.Personalization.Scope == PersonalizationScope.Shared)
        {
            editVerb.Text = "Modifica Web Part condivisa";
        }
        
else
        
{
            editVerb.Text = "Modifica Web Part";
        }

        
if (ctx.User.IsInRole("Administrator"))
        {
            editVerb.Visible = 
true
;
            DeleteVerb.Visible = 
true
;
            AllowLayoutChange = 
true
;
            CloseVerb.Visible = 
true
;
            ConnectVerb.Visible = 
true
;                    
            ExportVerb.Visible = 
true
;
            HelpVerb.Visible = 
true
;
            MinimizeVerb.Visible = 
true
;
            RestoreVerb.Visible = 
true
;                    
        }
        
else
        
{
            editVerb.Visible = 
false
;
            DeleteVerb.Visible = 
false
;
            AllowLayoutChange = 
false
;
            CloseVerb.Visible = 
false
;
            ConnectVerb.Visible = 
false
;
            ExportVerb.Visible = 
false
;
            HelpVerb.Visible = 
false
;
            MinimizeVerb.Visible = 
false
;
            RestoreVerb.Visible = 
false
;                    
        }                
    }
    e.Verbs = 
new WebPartVerbCollection(verbs);
}

Fatto ciò, tutte le webpart che inserite nelle zone gestite dal custom WebPartZone non mostreranno il menu a tendina nel caso in cui l'utente non sia un Administrator.

 

powered by IMHO 1.3

[OT] KEO, un messaggio per i posteri

Io non lo sapevo, esiste un progetto spaziale, eletto dall'UNESCO "Progetto del XXI Secolo", che ha lo scopo di lanciare un satellite entro il prossimo anno e che tornerà sulla Terra fra 50.000 anni. In esso, alla partenza, saranno inseriti i messaggi di tutte le persone del mondo che vorranno dire qualcosa ai posteri. E questi ultimi, in teoria, potranno riceverli al suo ritorno. Molto pittoresco.

Se volete lasciare il vostro "buon" messaggio: http://www.keo.org/

 

powered by IMHO 1.3

«novembre»
domlunmarmergiovensab
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789