Uso de SPBasePermissions para verificar o establecer permisos en diversos objetos de SharePoint

En este post, añado una lista de algunas de las propiedades y métodos que devuelven el enumerador  SPBasePermissions, y algunos métodos que toman como parámetro SPBasePermissions para comprobar si un usuario tiene ciertos derechos sobre un objeto en SharePoint.

Los siguientes son algunos de los componentes más comunes de SharePoint que se puede utilizar para obtener o establecer los permisos, o comprobar si son eficaces ciertos permisos para un usuario sobre el objeto:

Obtener o establecer los permisos de la base de una definición de función en un objeto SPWeb:

  • SPWeb.RoleDefinitions.BasePermissions 

Obtener los permisos del usuario actual o especificado tiene los permisos especificados sobre un objeto:

  • SPSite.EffectiveBasePermissions
  • SPSite.GetEffectiveRightsForAcl (SPReusableAcl)
  • SPWeb.EffectiveBasePermissions 
  • SPWeb.GetUserEffectivePermissions (Nombre de usuario String)
  • SPList.EffectiveBasePermissions 
  • SPList.EffectiveFolderPermissions 
  • SPList.GetUserEffectivePermissions (Nombre de usuario String)
  • SPFolder.EffectiveRawPermissions 
  • SPFile.EffectiveRawPermissions 
  • SPListItem.EffectiveBasePermissions 
  • SPListItem.GetUserEffectivePermissions (Nombre de usuario String)

Comprobar si el usuario actual o especificado tiene los permisos especificados y lanza UnauthorizedAccessException si no:

  • SPSite.CheckForPermissions (SPReusableAcl, SPBasePermissions) 
  • SPWeb.CheckPermissions (SPBasePermissions) 
  • SPList.CheckPermissions (SPBasePermissions) 
  • SPListItem.CheckPermissions (SPBasePermissions)

Devuelve verdadero/falso indicando si el usuario tiene el permisos específicos:

  • SPSite.DoesUserHavePermissions (SPReusableAcl, SPBasePermissions) 
  • SPSite.DoesUserHavePermissions (SPReusableAcl, SPBasePermissions, SPWeb) 
  • SPWeb.DoesUserHavePermissions (SPBasePermissions) 
  • SPWeb.DoesUserHavePermissions (String, SPBasePermissions) 
  • SPList.DoesUserHavePermissions (SPBasePermissions) 
  • SPList.DoesUserHavePermissions (SPUser, SPBasePermissions) 
  • SPListItem.DoesUserHavePermissions (SPBasePermissions) 
  • SPListItem.DoesUserHavePermissions (SPUser, SPBasePermissions) 

Diseño de páginas base – Permisos necesarios para acceder a una LayoutPageBase

  • LayoutsPageBase.RightsRequired 
  • LayoutsPageBase.DefaultLayoutsRights 

Recortar contenido de una página (Obtener o establecer permisos)

  • SPSecurityTrimmedControl.Permissions 

Permisos base asociados a un objeto SPPermission

  • SPPermission.BasePermissions 

Obtener los permisos base necesarios para utilizar un objeto o ConsoleAction ConsoleNode

  • ConsoleAction.UserRights 
  • ConsoleNode.UserRights 

Obtener los permisos necesarios para ver el Panel de Control de desarrolladores

  • SPDeveloperDashboardSettings.RequiredPermissions 

Obtener o establecer los permisos para una Aplicación Web

  • SPWebApplication.RightsMask 
  • SPSite.ApplicationRightsMask 

Permisos necesarios para acceder a una página móvil

  • SPMobilePage.RightsRequired 

Botón de la barra de menú

  • ToolBarMenuButton.CallbackVisibilityPermission 

Otros:

  • SPSecurableObject.GetUserEffectivePermissions (Nombre de usuario String) 
  • SPRibbon.Permissions 
  • MenuItemTemplate.Permissions 
  • SPUserCustomAction.Rights
De una forma gráfica, una manera de entender las dependencias de permisos que maneja SharePoint por defecto, es esta (pincha sobre ella para verla en grande):
Muy al hilo de esta información, creo que es de recomendada lectura el siguiente articulo de Microsoft: User permissions and permission levels (SharePoint Server 2010), donde se trata el tema de los permisos mas a fondo.

Deja un comentario

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