2009-07-01 21 views
5

Quiero programarlo para que los usuarios puedan ver solo los elementos de la lista.Permisos del elemento de la lista de SharePoint

Básicamente en un flujo de trabajo que se ejecuta cuando se crea un artículo Voy a hacer algunas cosas y notificar a algunas personas sobre este tema. También quiero que cambie los permisos del elemento para que solo los usuarios particulares (que buscan el tiempo de ejecución según el contenido de los elementos) puedan leer el elemento. El resto de los usuarios que tienen acceso a la lista solo verán elementos particulares pero no todos. El elemento de la lista puede no ser necesariamente propiedad sino el usuario que necesita verlo, por lo que no puedo configurar los permisos de la lista para que los usuarios solo puedan ver sus propios elementos.

Para poner esto en contexto si ayuda- La lista está registrando roles de trabajo para un miembro en particular. Cada elemento de la lista es una asignación de funciones que contiene una búsqueda de un rol en la lista de roles y una búsqueda para un miembro en la lista de miembros. No estoy usando directamente un campo multilookup en la lista de miembros para roles porque cada asignación de roles necesita información adicional sobre ella, como una descripción, una fecha de inicio, etc. Cada función tiene un usuario/grupo particular que la administra. Lo quiero para que cuando vaya a esta gran lista de asignaciones de roles, un usuario solo pueda ver las asignaciones de roles para los roles de los que son el administrador.

El asesoramiento sería muy apreciado.

Respuesta

10

Puede asignar permisos a elementos individuales de la lista. Por ej.

 // get list item 
     SPListItem item = <your list item>; 
     if (!item.HasUniqueRoleAssignments) 
     { 
      item.BreakRoleInheritance(true); 
     } 

     // get principal 
     SPPrincipal principal = <principal to grant permissions to>; 

     // get role definition 
     SPRoleDefinition rd = <role that contains the permissions to be granted to the principal>; 

     // create role assignment 
     SPRoleAssignment ra = new SPRoleAssignment(principal); 
     ra.RoleDefinitionBindings.Add(rd); 
     item.RoleAssignments.Add(ra); 

Pero tenga cuidado con el rendimiento y las implicaciones operativas de la asignación de permisos por elemento de la lista.

En general, yo preferiría

  • permisos asignados no más profundo que el nivel de lista
  • medida de lo posible, asignar permisos a grupos y luego incluir a los usuarios individuales en esos grupos.
+0

También esta pregunta/respuesta puede ayudar: http://stackoverflow.com/questions/1058232 –

Cuestiones relacionadas