none
Permissão de Pasta RRS feed

  • Pergunta

  • Caros,

    Tenho um cenário onde preciso dar permissão aos usuários para acessarem suas respectivas pastas no SharePoint. A idéia é importar do sistema de arquivos estas pastas e "jogá-las" em uma Library do SharePoint. Cada pasta é nomeada, ainda no sistemas de arquivos, de acordo com o usuário que vai acessá-la. O nome da pasta é o mesmo do login que está no AD. O que preciso é dar permissão ao "joao", por exemplo, quando eu jogar a pasta detro da Library do SharePoint e garantir que só o joao vai acessá-la. Isso deve acontecer com todas as pastas: apenas seu dono pode acessá-la. Após este processo as pastas do sistema de arquivos serão deletadas. Bem, acho que ficou tranquilo de entender o que preciso... Alguém pode dar aquela ajuda pra mim? Abs.

    obs1: as pastas que estão no sistema de arquivos não possuem qualquer definição de permissão.
    obs2: Esse processo será realizado via programação em visual studio. No momento o que falta é apenas essa atribuição de permissão para que meu projeto funcione 100%.

    Cristian P.J.
    quarta-feira, 4 de fevereiro de 2009 18:26

Respostas

  • Cristian,

    Acho que entendi sua dúvida, veja bem, uma permissão no Sharepoint é um conjunto de dois objetos, um SPRoleAssignment e um SPRoleDefinition, sendo este segundo um nível de permissão definido para o objeto, então vou tentar lhe mostrar um exemplo de como fizemos aqui..........

    Definir o SPRoleDefinition......

    public const SPBasePermissions NivelLeitura_Permissao =  
                SPBasePermissions.ViewFormPages |  
                SPBasePermissions.ViewListItems |  
                SPBasePermissions.EnumeratePermissions |  
                SPBasePermissions.BrowseDirectories |  
                SPBasePermissions.OpenItems |  
                SPBasePermissions.ViewPages |  
                SPBasePermissions.ViewUsageData |  
                SPBasePermissions.ViewVersions |  
                SPBasePermissions.BrowseUserInfo |  
                SPBasePermissions.UseRemoteAPIs |  
                SPBasePermissions.Open; 

    Definir um nome para o nível de permissão e adicionar ele ao site....

    SPRoleDefinition leitura = new SPRoleDefinition();  
    leitura.Name = "Leitor no Site";  
    leitura.Description = "Descrição";  
    leitura.BasePermissions = NivelLeitura_Permissao;  
     
    SPWeb contexto = SPContext.Current.Web;  
     
    contexto.RoleDefinitions.Add(leitura);  
    contexto.Update(); 


    Bom, pelo seu post eu vou encarar que a lista ou item já está previamente criado, no meu caso, a permissão era atribuída por pasta, acredito que deve funcionar por item, o WSS 3.0 já suporta permissão por item.

    Atribuir a permissão a lista ou item.... =) ...

    SPWeb context = SPContext.Current.Web;  
     
    SPList list = context.Lists["Documentos Compartilhados"];  
    SPUser _permitUser = context.AllUsers.GetById(<user_id>);  
     
    SPRoleAssignment roleAssign = new SPRoleAssignment(_permitUser);  
    SPRoleDefinition roleDef = new SPRoleDefinition();  
     
    roleDef = context.RoleDefinitions["Leitor no Site"];  
     
    roleAssign.RoleDefinitionBindings.Add(roleDef);  
    list.RoleAssignments.Add(roleAssign);  
     
    list.Update(); 

    Pronto, asism que o código list.Update() for executado, uma nova permissão será adicionado a lista, acredito que por item de lista não deva ter diferença.

    Espero que consiga,
    Abraços..... =) ...
    • Sugerido como Resposta Andre Castro quinta-feira, 5 de fevereiro de 2009 23:36
    • Marcado como Resposta Cristian PJ quinta-feira, 28 de maio de 2009 11:52
    quarta-feira, 4 de fevereiro de 2009 20:55