Um usuário é proprietário de uma pasta do Meu Drive. A pasta pode conter vários usuários com acesso a arquivos diferentes. Esse modelo de acesso restritivo significa que usuários diferentes podem ver listas de itens diferentes na mesma pasta. Um usuário com acesso à pasta mãe do Meu Drive, mas não a um item dentro dessa pasta, tem "acesso restrito". Isso cria uma situação em que é difícil saber quem tem acesso dentro da hierarquia.
Por outro lado, os arquivos do drive compartilhado pertencem ao drive compartilhado. Os drives compartilhados têm um modelo expansivo para que todos os usuários tenham a mesma lista de itens na mesma pasta.
A introdução de pastas com acesso limitado replica o modelo de acesso expansivo de drives compartilhados para o Meu Drive. Com essa mudança, as pastas com acesso limitado são a única exceção que permite restringir o acesso a uma subpasta específica no Meu Drive e nos drives compartilhados.
Este guia explica como gerenciar pastas com acesso limitado e acesso expansivo no Google Drive.
Sobre pastas com acesso limitado
As pastas com acesso limitado permitem restringir pastas a usuários específicos. Somente os usuários que você adiciona diretamente às permissões da pasta podem abri-la e acessar o conteúdo. Os usuários com acesso herdado à pasta compartilhada do Meu Drive ou à pasta do drive compartilhado (por acesso de uma pasta mãe) podem ver a pasta restrita no Drive, mas não podem abri-la. Esse recurso alinha melhor o comportamento de compartilhamento de itens no Meu Drive e nos drives compartilhados, permitindo que você organize pastas com conteúdo sensível junto com conteúdo compartilhado de forma mais ampla.
As pastas com acesso limitado estão disponíveis no Meu Drive e nos drives compartilhados. O papel owner no Meu Drive e o papel organizer nos drives compartilhados sempre podem acessar pastas com acesso limitado. Para modificar a lista de usuários da pasta, não são necessárias permissões especiais. Os papéis que podem compartilhar pastas podem atualizar as listas de membros. Para saber mais sobre papéis e
permissões, consulte Papéis e permissões e Visão geral dos
drives compartilhados.
Note que embora pastas sejam um tipo de arquivo, o acesso limitado não está disponível para arquivos.
Definir acesso limitado em uma pasta
Embora os usuários com permissões diretas de pasta possam acessar uma pasta com acesso limitado, somente o papel owner no Meu Drive e o papel organizer nos drives compartilhados podem ativar ou desativar o acesso limitado.
Além disso, se um usuário com o papel writer no Meu Drive tiver
o campo booleano writersCanShare no recurso files
definido como true, ele também poderá ativar ou desativar o recurso.
Para limitar o acesso a uma pasta, defina o campo booleano inheritedPermissionsDisabled no recurso files como true. Quando true, somente o papel owner, o papel organizer e os usuários com permissões diretas de pasta podem acessá-lo.
Para reativar as permissões herdadas, defina inheritedPermissionsDisabled como false.
Verificar a permissão para limitar o acesso a uma pasta
Para verificar se é possível limitar o acesso a uma pasta, inspecione os valores booleanos
dos capabilities.canDisableInheritedPermissions e
capabilities.canEnableInheritedPermissions campos no recurso files. Essas configurações confirmam se você tem permissão para limitar o acesso a uma pasta pelo campo inheritedPermissionsDisabled.
Para mais informações sobre capabilities, consulte Entender os recursos de arquivos.
Listar filhos de uma pasta com acesso limitado
Para verificar se é possível listar os filhos de uma pasta, use o campo booleano capabilities.canListChildren.
O valor retornado é sempre false quando o item não é uma pasta ou se o acesso do solicitante ao conteúdo da pasta foi removido definindo inheritedPermissionsDisabled como false.
Se o acesso ao conteúdo da pasta foi removido, ainda é possível acessar os
metadados da pasta com os métodos files.get() e
files.list(). Para confirmar se o acesso é
limitado, verifique o corpo da resposta para ver se o item é uma pasta com o tipo
MIME application/vnd.google-apps.folder e se o
capabilities.canListChildren campo está definido como falso. Se você tentar listar os filhos de uma pasta, o resultado será sempre vazio.
Acessar metadados de pastas com acesso limitado
As pastas com acesso limitado permitem visualizar os metadados da pasta se você não tiver acesso ao conteúdo da pasta.
Ao usar o recurso permissions para determinar o acesso de um usuário, as pastas do Meu Drive e do drive compartilhado que concedem acesso apenas aos metadados contêm os seguintes valores no corpo da resposta: inheritedPermissionsDisabled=true e view=metadata. O papel é sempre definido como reader. O campo view só é preenchido para permissões que pertencem a uma view. Para mais informações, consulte Visualizações.
Todas as entradas no campo permissionDetails têm o campo inherited definido como true para indicar que a permissão é herdada e que o acesso direto ao conteúdo da pasta não foi concedido.
Para conceder acesso ao conteúdo e aos metadados da pasta, defina o campo inheritedPermissionsDisabled como false ou atualize o papel para reader ou superior.
Por fim, se uma permissão foi limitada primeiro desativando a herança em uma pasta (inheritedPermissionsDisabled=true) e, em seguida, a permissão foi adicionada novamente diretamente à pasta, os valores no corpo da resposta se tornam inheritedPermissionsDisabled=true com o campo view como não definido. Se a pasta estiver em um drive compartilhado, a lista permissionDetails terá uma entrada com o campo inherited definido como false para indicar que a permissão não é herdada. Essa permissão concede acesso ao conteúdo e aos metadados da pasta, como qualquer outra permissão.
Excluir pastas com acesso limitado
É possível excluir pastas com acesso limitado usando o files.delete() método no recurso files.
No Meu Drive, apenas o proprietário do item pode excluir uma hierarquia de pastas. Se um usuário excluir uma hierarquia contendo pastas com acesso limitado que pertencem a outro usuário, essas pastas vão ser movidas para o Meu Drive do proprietário.
Se o usuário tiver o papel owner, toda a hierarquia será excluída.
Em drives compartilhados, o papel organizer pode excluir hierarquias, mesmo que elas contenham pastas com acesso limitado. Se o papel fileOrganizer excluir uma hierarquia que contenha pastas com acesso limitado, o resultado vai depender de se elas foram adicionadas novamente como fileOrganizer nas pastas com acesso limitado. Se elas foram adicionadas, toda a hierarquia será excluída. Caso contrário, as pastas com acesso limitado serão movidas para a pasta raiz do drive compartilhado.
Sobre o acesso expansivo
A introdução de pastas com acesso limitado amplia o modelo de acesso expansivo de drives compartilhados para o Meu Drive. Depois que o modelo de acesso for lançado, ter acesso a uma pasta significa pelo menos o mesmo nível de acesso a tudo na hierarquia de pastas. As pastas com acesso limitado são a única exceção que permite restringir o acesso a uma subpasta específica no Meu Drive e nos drives compartilhados. Isso também significa que, a menos que sua pasta tenha acesso limitado, não será mais possível remover o acesso herdado da pasta mãe. Se você fizer isso, a API Drive vai retornar uma resposta de erro. Para definir um controle de acesso mais granular em uma hierarquia, você pode definir acesso limitado acesso na pasta.
Adaptar-se ao acesso expansivo
Para facilitar a adaptação dos desenvolvedores ao acesso expansivo, várias melhorias foram feitas na API Google Drive:
O campo
permissionDetails[]nopermissionsrecurso agora é preenchido para itens no Meu Drive. Anteriormente, os campos eram não definidos ou replicados do campoteamDrivePermissionDetails, quando apropriado. Somente os campospermissionTypeeinheritedno Meu Drive são preenchidos.O campo
permissionDetails[].inheritedindica se uma permissão é herdada do pai do item. Ele permite detectar se determinados papéis (comoreader) são herdados do pai e se um papel mais alto (comowriter) é concedido diretamente no item.Ao visualizar as permissões de um item, o campo
permissionDetails[]pode conter várias entradas. Se presente, há uma entrada para a permissão diretamente no item para esse escopo e, em seguida, entradas para as permissões herdadas ou de membro no item.Os desenvolvedores podem ativar o comportamento da API de acesso expansivo no Meu Drive antes de qualquer aplicação obrigatória futura. É possível definir o parâmetro de solicitação
enforceExpansiveAccesscomotruepara que mudanças futuras no acesso expansivo não afetem seu app.A ativação agora significa que a API opera da mesma forma para itens no Meu Drive e para itens em drives compartilhados. Por exemplo, qualquer tentativa de restringir o acesso abaixo do papel herdado falha ao chamar
permissions.update(). Da mesma forma, uma chamada parapermissions.delete()falha se a permissão for herdada.
Detectar e impedir o acesso restrito
Seu app pode estar criando acesso restrito (em que um usuário tem acesso à pasta mãe do Meu Drive, mas não a um arquivo dentro dessa pasta) nas pastas do Meu Drive ao usar os métodos permissions.update() ou permissions.delete().
Ao usar esses métodos, é possível revisar os campos no recurso permissions para ver onde uma solicitação pode criar acesso restrito e evitar o envio dessas solicitações. Para detectar essa situação, use o campo enforceExpansiveAccess na solicitação.
Além disso, se o app já tiver criado acesso restrito nas pastas, siga estas etapas:
Percorra a hierarquia de pastas para remover o acesso restrito. Em vez disso, você deve definir o acesso limitado à pasta.
Se o item que você está tentando cancelar o compartilhamento for um arquivo, crie uma pasta intermediária, defina o acesso limitado e mova o arquivo para dentro da nova pasta.
Se você não quiser usar pastas de acesso limitado, mas precisar remover algum acesso, mova o arquivo para uma pasta particular (como a pasta raiz do Meu Drive). Em seguida, você pode criar um atalho para o local original do item para que os usuários ainda possam usá-lo.
Temas relacionados
- Compartilhar arquivos, pastas e drives
- Como funciona o acesso a arquivos em drives compartilhados
- Saiba mais sobre as pastas com acesso limitado