[MOSS] Evitar que los usuarios colaboradores modifiquen WebParts
En un portal de publicación el cliente desea que los usuarios colaboradores no puedan modificar WebParts:
Hasta donde yo se y sí alguien conoce una manera mejor estaré encantado de escucharla, en los Niveles de permisos, más concreto en colaborar, en los permisos de lista si desmarcamos el check de Editar elementos
evita que se editen los WebParts pero se pierde la edición de contenidos y eso no me vale, por eso me he creado un control que va en la master y que se encarga de hacer este trabajo haciendo uso de JavaScript (JQuery) para eliminar el td que contiene la flechita y así evitar que se modifiquen los webparts a menos que sea un administrador:
public class HideWebPartMenuControl : UserControl
{
#region WebControl Events
protected override void OnPreRender(EventArgs e)
{
if (!SPContext.Current.Web.CurrentUser.IsSiteAdmin)
{
const string javascriptcode = @"$(document).ready(function() {
$('tr.ms-WPHeader').each(function(index) {
$('td:last', $(this)).remove();
});
});";
if (!Page.ClientScript.IsStartupScriptRegistered("hidemenuwebpartjs"))
{
Page.ClientScript.RegisterStartupScript(
GetType(),
"hidemenuwebpartjs",
javascriptcode,
true
);
}
}
base.OnPreRender(e);
}
#endregion
}
Ahora, si entramos con un usuario colaborador la flechita desaparece:
Espero que os sirva ;)