Olá pessoa,
Estou fazendo um workflow no visual studio e em determinado momento eu preciso alterar o acesso de alguns itens de uma lista, preciso que todos o grupos do site tenham acesso somente de leitura nesse item.
Segue abaixo o código q estou usando. Esse código realmente muda as permissões no item, o problema é que mesmo assim outro usuário consegue abrir um doc e editá-lo.
var siteUrl = wfContext.CurrentWebUrl;
SPSite site = new SPSite(siteUrl);
SPWeb web = site.AllWebs[projectName[0]];
web.AllowUnsafeUpdates = true;
SPList biblioteca = web.Lists["Iniciação"];
SPQuery filtro = new SPQuery();
filtro.Query = @"<Where>
<Eq>
<FieldRef Name='Tipo_x0020_de_x0020_documento' />
<Value Type='Lookup'>DAPP</Value>
</Eq>
</Where>";
SPListItemCollection itens = biblioteca.GetItems(filtro);
SPGroupCollection grupos = web.SiteGroups;
SPRoleDefinitionCollection webroledefinitions = web.RoleDefinitions;
foreach (SPListItem item in itens)
{
item.BreakRoleInheritance(true);
item.Update();
foreach (SPGroup grupo in grupos)
{
item.RoleAssignments.RemoveFromCurrentScopeOnly(grupo);
item.Update();
SPRoleAssignment roleassignment = new SPRoleAssignment(grupo);
roleassignment.RoleDefinitionBindings.Add(web.RoleDefinitions.GetByType(SPRoleType.Reader));
item.RoleAssignments.Add(roleassignment);
item.Update();
}
}
web.AllowUnsafeUpdates = false;
Alguém sabe porque ele altera as permissões no site mas mesmo assim o usuário consegue editar o doc?
Obrigado,
Eduardo Araújo