miércoles, 11 de septiembre de 2013

SP2013: Ocultar elementos según rol (permisos) de usuario

Otra cosa que suelen demandar los clientes es que determinadas zonas de la pantalla no se vean para determinados usuarios, según el rol de permisos que estos tengan.

Por ejemplo, que la rueda dentada de configuración (antes "Acciones del Sitio"), solo la puedan visualizar los Administradores del Site, pero no los usuarios colaboradores del mismo.

¿Cómo se consigue esto? Con la instrucción SPSecurityTrimmedControl podremos hacerlo fácilmente. Tan solo hay que editar la página que contenga la zona a ocultar (con SharePoint Designer, por ejemplo), e incluir dicha zona dentro de la siguientes líneas de código:

 <Sharepoint:SPSecurityTrimmedControl runat="server" PermissionsString="ManageWeb">
 (...Código HTML...)
 </SharePoint:SPSecurityTrimmedControl>

Con esto conseguiremos que tan solo los usuarios con el nivel de permisos de "Manage Web", vean lo que hay en medio del código.

El parámetro PermissionsString es el que marca el nivel de permisos que ha de tener el usuario para visualizar el código que estamos acotando. Si queréis saber cuales son los posibles valores para este parámetro, consultad este listado. (recomiendo que lo consultéis, porque no es tan evidente, si por ejemplo ponéis "FullControl" no funciona, ha de ser "FullMask")

Si, por ejemplo lo introducimos en la masterpage del site, justo entre el control de "siteactiontd":

<Sharepoint:SPSecurityTrimmedControl runat="server" PermissionsString="FullMask">
<span class="ms-siteactions-root" id="siteactiontd" >
...
</SharePoint:SiteActions></span>
</SharePoint:SPSecurityTrimmedControl>

Conseguiremos que los Administradores (Full Control) vean esto:



Pero el resto de roles, solo vean esto:

¡¡Muy útil!! ¿No? :-D

No hay comentarios: