SharePoint Online: Como hacer una redirección en función de los permisos del usuario logado (I)!

Si tenemos la necesidad de hacer una redirección desde una página cualquiera de un sitio de SharePoint Online en función de los permisos de usuario, contamos con dos tipos de técnicas (teniendo en cuenta las limitaciones del servicio): utilizar código de cliente vs utilizar código de servidor. En el caso de utilizar código de cliente, recurriremos al modelo de objetos en cliente (sabor ECMAScript) que nos permite conocer el usuario logado, comprobar sus permisos  y realizar la correspondiente redirección. Por ejemplo, podemos insertar el siguiente código en una Content Editor WebPart de una página de manera que si el usuario tiene un cierto nivel de permisos se haga la redirección correspondiente:

   1: <script type="text/javascript">

   2: ExecuteOrDelayUntilScriptLoaded(ConsultarUsuario, "sp.js");

   3:  

   4:     function ConsultarUsuario() {

   5:  

   6:         // Contexto de cliente

   7:         var context = new SP.ClientContext.get_current();

   8:         

   9:         // Carga del sitio actual (SPWeb)

  10:         this.site = context.get_web();

  11:         context.load(this.site);

  12:  

  13:         // Usuario actual

  14:         this.UsuarioActual = site.get_currentUser();

  15:         this.UsuarioActual.retrieve();

  16:  

  17:     //Permisos para el usuario actual

  18:     context.load(site,'EffectiveBasePermissions');

  19:  

  20:         // Ejecutar la consulta de forma asíncrona

  21:         context.executeQueryAsync(Function.createDelegate(this, this.onSuccess), Function.createDelegate(this, this.onFailure));

  22:     }

  23:  

  24:     function onSuccess(senger, args) {

  25:         alert("Usuario Actual: " + this.UsuarioActual.get_title() + "n" + "Login de Usuario:: " + this.UsuarioActual.get_loginName());

  26:     if (this.site.get_effectiveBasePermissions().has(SP.PermissionKind.manageLists))

  27:         alert("No tienes permisos para ver esta página, redirigiendo ...");

  28:         window.location = 'http://www.ciin.es'

  29:     }

  30:     function onFailure(sender, args) {

  31:         alert("Petición fallida " + args.get_message() + "n" + args.get_stackTrace());

  32:     }</script><input onclick="ConsultarUsuario()" type="button" value="Usuario Actual"/>

Para añadir el código en la WebPart, basta con utilizar la opción de añadir código fuente HTML en lugar de texto enriquecido:

image

Referencias:

Publicado por

Juan Carlos González

Juan Carlos es Ingeniero de Telecomunicaciones por la Universidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC). Cuenta con más de 12 años de experiencia en tecnologías y plataformas de Microsoft diversas (SQL Server, Visual Studio, .NET Framework, etc.), aunque su trabajo diario gira en torno a SharePoint & Office 365. Juan Carlos es MVP de Office Servers & Services desde 2015 (anteriormente fue reconocido por Microsoft como MVP de Office 365 y MVP de SharePoint Server desde 2008 hasta 2015), coordinador del grupo de usuarios .NET de Cantabria (Nuberos.Net, www.nuberos.es), co-fundador y coordinador del Grupo de Usuarios de SharePoint de España (SUGES, www.suges.es), así como co-director de la revista gratuita en castellano sobre SharePoint CompartiMOSS (www.compartimoss.com). Hasta la fecha, ha publicado 8 libros sobre SharePoint & Office 365 y varios artículos en castellano y en inglés sobre ambas plataformas.

2 comentarios en “SharePoint Online: Como hacer una redirección en función de los permisos del usuario logado (I)!”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *