2011-02-08 30 views
5

Traté de encontrar un ejemplo simple de cómo dar un determinado grupo de Sharepoint X, un nivel de permiso Y, para el elemento de la lista Z, pero no puedo encontrar el código de ejemplo.¿Cómo dar un SPGroup permisos para un SPItem?

El código más corto que podía llegar a para asignar un usuario específico permisos ("Reader" en este caso) para el artículo es el siguiente:

SPRoleDefinition spRole = spWeb.RoleDefinitions["Reader"];  
SPRoleAssignment roleAssignment= new SPRoleAssignment("//myDomain/myUser", 
                 "[email protected]", 
                 "Name", "Notes");  
roleAssignment.RoleDefinitionBindings.Add(spRole); 

SPListItem listItem = spWeb.GetListItem("http://<URL to item somewhere on the Site>"); 
listItem.BreakRoleInheritance(true); 
listItem.RoleAssegnments.Add(roleAssignment); 
listItem.Update(); 

Sé que SPRoleAssignment.Add También se puede tomar una SPPrincipal que a su vez is a group - No sé cómo escribirlo.

Por favor dame un código de ejemplo para cómo agregar un grupo Sharepoint existente (por ejemplo, "Mi Grupo") con el nivel de permiso "Lector" para mi artículo.

Respuesta

11

En realidad, fue bastante fácil: en lugar de SPRoleAssignment("user","name"...), podría agregar SPGroup a la asignación de roles y funcionó. Código completo siguiente:

//note: using SiteGroups is "safer", 
//because also groups which don't yet have any permissions are included 
SPGroup spGroup = spWeb.SiteGroups["MyGroup"]; 
SPRoleDefinition spRole = spWeb.RoleDefinitions["Read"]; 

SPRoleAssignment roleAssignment= new SPRoleAssignment(spGroup); 
roleAssignment.RoleDefinitionBindings.Add(spRole); 

SPListItem listItem = spWeb.GetListItem("http://<URL to item somewhere on the Site>"); 
listItem.BreakRoleInheritance(true); 
listItem.RoleAssegnments.Add(roleAssignment); 
listItem.Update(); 
+1

Gracias por esto, tuve exactamente el mismo problema, buena solución! –

+0

Obtengo valores nulos en roleAssignment cuando doy spgroup en el constructor. ¿Qué hacer para eso? El grupo se encuentra pero no funciona. –

Cuestiones relacionadas