none
Mudar o acesso a um documento em uma lista para read-only. RRS feed

  • Pergunta

  • 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

     

     

    quarta-feira, 16 de fevereiro de 2011 16:14

Todas as Respostas

  • Eduardo,

    Minha dica seria criar uma segunda lista com acesso de leitura para todos e mover os itens para lá.

     


    Rafael Gomes dos Santos Consultor de Informática MCAS - Microsoft Certified Application Specialist rafael.gomes.santos@gmail.com https://sites.google.com/site/pfntec/
    sexta-feira, 25 de fevereiro de 2011 19:09