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