Cada arquivo, pasta e drive compartilhado do Google Drive tem recursos Permissions associados. Cada recurso
identifica a permissão para uma type
específica (usuário, grupo, domínio, qualquer pessoa)
e role
, como "comentador" ou "leitor". Por exemplo, um arquivo pode ter uma
permissão que concede acesso somente leitura a um usuário específico (type=user
)
(role=reader
), enquanto outra permissão concede aos membros de um grupo específico
(type=group
) a capacidade de adicionar comentários a um arquivo (role=commenter
).
Para uma lista completa de papéis e as operações permitidas por cada um deles, consulte Papéis.
Situações para compartilhar recursos do Drive
Existem cinco tipos de cenários de compartilhamento:
Para compartilhar um arquivo no Meu Drive, o usuário precisa ter
role=writer
ou mais recente.Se o valor booleano
writersCanShare
for definido comoFalse
para o arquivo, o usuário precisará terrole=owner
.Se o usuário com
role=writer
tiver acesso temporário regido por uma data e hora de validade, ele não poderá compartilhar o arquivo.
Para mais informações, consulte Adicionar uma data de validade.
Para compartilhar uma pasta no Meu Drive, o usuário precisa ter
role=writer
ou mais.Se o valor booleano
writersCanShare
for definido comoFalse
para o arquivo, o usuário precisará ter arole=owner
mais permissiva.O acesso temporário (regido por uma data de validade e um horário) não é permitido nas pastas da seção Meu Drive com
role=writer
.
Para compartilhar um arquivo em um drive compartilhado, o usuário precisa ter
role=writer
ou mais versão.A configuração
writersCanShare
não é válida para os itens nos drives compartilhados. É tratado como se fosse sempre definido comoTrue
.O acesso temporário (regido por uma data e hora de validade) não é permitido nos drives compartilhados.
Para compartilhar uma pasta em um drive compartilhado, o usuário precisa ter o
role=organizer
.- Se a restrição
sharingFoldersRequiresOrganizerPermission
em um drive compartilhado estiver definida comoFalse
, os usuários comrole=fileOrganizer
vão poder compartilhar pastas nesse drive compartilhado.
- Se a restrição
Para gerenciar a associação ao drive compartilhado, o usuário precisa ter o
role=organizer
. Somente usuários e grupos podem ser membros de drives compartilhados.
Propagação da permissão
As listas de permissões de uma pasta são propagadas para baixo, e todos os arquivos e pastas filhos herdam as permissões da pasta mãe. Sempre que as permissões ou a hierarquia são alteradas, a propagação ocorre recursivamente em todas as pastas aninhadas. Por exemplo, se um arquivo existir em uma pasta e ela for movida para outra, as permissões na nova pasta vão ser propagadas para o arquivo. Se a nova pasta conceder ao usuário do arquivo um novo papel, como "gravador", ele substituirá o papel antigo.
Por outro lado, se um arquivo herda role=writer
de uma pasta e é movido para
outra pasta que fornece um papel de "leitor", o arquivo agora herda
role=reader
.
Não é possível remover permissões herdadas de um arquivo ou pasta em um drive compartilhado. Em vez disso, essas permissões precisam ser ajustadas no pai direto ou indireto do qual foram herdadas. As permissões herdadas podem ser removidas dos itens em "Meu Drive" ou "Compartilhados comigo".
Por outro lado, as permissões herdadas podem ser substituídas em um arquivo ou uma pasta em "Meu
Drive". Portanto, se um arquivo herdar role=writer
de uma pasta
Meu Drive, você poderá definir role=reader
no arquivo para diminuir o
nível de permissão.
Recursos
O recurso Permissions não determina a capacidade do usuário atual de realizar ações em um arquivo ou uma pasta.
Em vez disso, um recurso Files contém um conjunto de
campos capabilities
booleanos usados para indicar se uma ação pode ser
executada em um arquivo ou uma pasta. A API Google Drive define esses campos com base no recurso de permissões do usuário atual associado ao arquivo ou pasta.
Por exemplo, quando Alex faz login no seu app e tenta compartilhar um arquivo, a função de Alex é verificada em termos de permissões no arquivo. Se o papel permitir que eles compartilhem
um arquivo, os capabilities
relacionados ao arquivo, como canShare
, vão ser preenchidos
em relação ao papel. Se Alex quiser compartilhar o arquivo, o app verificará a
capabilities
para garantir que canShare
esteja definido como true
.
Criar uma permissão
Os dois campos a seguir são necessários ao criar uma permissão:
type
: otype
identifica o escopo da permissão (user
,group
,domain
ouanyone
). Uma permissão comtype=user
se aplica a um usuário específico, enquanto uma permissão comtype=domain
se aplica a todos em um domínio específico.role
: o camporole
identifica as operações que otype
pode executar. Por exemplo, uma permissão comtype=user
erole=reader
concede a um usuário específico acesso somente leitura ao arquivo ou à pasta. Ou uma permissão comtype=domain
erole=commenter
permite que todos no domínio adicionem comentários a um arquivo. Para ver uma lista completa de papéis e as operações permitidas por cada um deles, consulte Papéis.
Ao criar uma permissão em que type=user
ou type=group
, você também precisa
fornecer um emailAddress
para vincular
o usuário ou grupo específico à permissão.
Ao criar uma permissão em que type=domain
, também é necessário fornecer um
domain
para vincular um domínio específico
à permissão.
Para criar uma permissão, faça o seguinte:
- Use o método
permissions.create
com ofileId
para a pasta ou o arquivo associado. - No corpo da solicitação, identifique o
type
e orole
. - Se
type=user
outype=group
, forneça umemailAddress
. Setype=domain
, forneça umdomain
.
Usar públicos-alvo
Os públicos-alvo são grupos de pessoas, como departamentos ou equipes, que você pode recomendar aos usuários para compartilhar itens. É possível incentivar os usuários a compartilhar itens com um público mais específico ou limitado, e não com toda a organização. Os públicos-alvo ajudam a melhorar a segurança e a privacidade dos dados, além de facilitar o compartilhamento adequado. Para mais informações, consulte Sobre públicos-alvo.
Para usar públicos-alvo, faça o seguinte:
Faça login no Google Admin Console.
Para realizar essa tarefa, você precisa fazer login usando uma conta com privilégios de superadministrador.
Acesse Menu > Diretório > Públicos-alvo.
Na lista de públicos-alvo, clique no nome do público-alvo. Para criar um público-alvo, consulte Criar um público-alvo.
Copie o ID exclusivo do URL do público-alvo:
https://admin.google.com/ac/targetaudiences/ID
.Crie uma permissão com
type=domain
e defina o campodomain
comoID.audience.googledomains.com
.
Para ver como os usuários interagem com os públicos-alvo, consulte Experiência do usuário para compartilhamento de links.
Recuperar todas as permissões de um arquivo, uma pasta ou um drive compartilhado
Use o método permissions.list
para recuperar todas as permissões de um arquivo, pasta ou drive compartilhado.
Verificar as permissões do usuário
Quando o app abre um arquivo, ele precisa verificar os recursos do arquivo e renderizar
a IU para refletir as permissões do usuário atual. Por exemplo, se o usuário
não tiver um recurso canComment
no arquivo, a capacidade de comentar
vai ser desativada na IU.
Para verificar os recursos, chame files.get
com
o fileId
e o parâmetro fields
definido no campo capabilities
.
Para mais informações sobre como retornar campos usando o parâmetro fields
, consulte
Retornar campos específicos para um arquivo.
Determinar a origem da função de pastas e arquivos de drives compartilhados
Para alterar o papel em um arquivo ou uma pasta, você precisa saber a origem dele. Para drives compartilhados, a origem de um papel pode ser baseada na associação ao drive compartilhado, no papel em uma pasta ou no papel em um arquivo.
Para determinar a origem do papel de um drive compartilhado ou de itens
dentro dele, chame permissions.get
com o parâmetro
fileId
, permissionId
e fields
definido como o
campo permissionDetails
. Para encontrar o permissionId
, use
permissions.list
com o fileId
.
Esse campo enumera todas as permissões herdadas e diretas de arquivo para o usuário, grupo ou domínio.
Mudar permissões
Para alterar as permissões de um arquivo ou uma pasta, mude a função atribuída:
Chame
permissions.update
com opermissionId
da permissão para mudar e ofileId
para o arquivo, a pasta ou o drive compartilhado associado. Para encontrar opermissionId
, usepermissions.list
com ofileId
.Na solicitação, identifique o novo
role
.
Você pode conceder permissões em arquivos ou pastas individuais em um drive compartilhado,
mesmo que o usuário ou grupo já seja membro. Por exemplo, Alex tem role=commenter
como parte da associação a um drive compartilhado. No entanto, o app pode conceder a Alex
role=writer
um arquivo em um drive compartilhado. Nesse caso, como o novo papel
é mais permissivo do que o concedido por meio da associação, a nova
permissão se torna o papel efetivo do arquivo ou pasta.
Revogar acesso a um arquivo ou uma pasta
Para revogar o acesso a um arquivo ou uma pasta, chame
delete
com fileId
e
permissionId
para excluir a permissão.
Para os itens em "Meu Drive", é possível excluir uma permissão herdada. A exclusão de uma permissão herdada revoga o acesso ao item e aos itens filhos, se algum.
Para itens em um drive compartilhado, as permissões herdadas não podem ser revogadas. Atualize ou revogue a permissão no arquivo ou na pasta mãe.
A operação delete
também é usada para excluir permissões aplicadas diretamente a um
arquivo ou pasta de drive compartilhado.
Transferir a propriedade de arquivos para outra conta do Google Workspace na mesma organização
A propriedade dos arquivos em "Meu Drive" pode ser transferida de uma conta do Google Workspace para outra na mesma organização. Os arquivos dentro dela pertencem a uma organização proprietária de um drive compartilhado. Portanto, as transferências de propriedade não são compatíveis com arquivos e pastas em drives compartilhados. Os organizadores de um drive compartilhado podem mover os itens e para o "Meu Drive" deles, o que transfere a propriedade para eles.
Para transferir a propriedade de um arquivo em "Meu Drive", siga um destes procedimentos:
Crie uma permissão de arquivo que concede acesso de proprietário (
role=owner
) a um usuário específico (type=user
).Atualiza a permissão de um arquivo existente com
role=owner
e transfere a propriedade para o usuário especificado (transferOwnership=true
).
Transferir a propriedade de arquivos de uma conta pessoal para outra
A propriedade dos arquivos pode ser transferida entre contas pessoais. No entanto, o Drive não transfere a propriedade de um arquivo entre duas contas pessoais até que o novo proprietário em potencial concorde explicitamente com a transferência. Para transferir a propriedade de arquivo de uma conta pessoal para outra, siga estas etapas:
O proprietário atual inicia uma transferência de propriedade criando ou atualizando a permissão do arquivo do novo proprietário em potencial. A permissão precisa incluir essas configurações:
role=writer
,type=user
ependingOwner=true
. Se o novo proprietário estiver criando uma permissão, ele receberá uma notificação por e-mail.O novo proprietário aceita a solicitação de transferência de propriedade ao criar ou atualizar a permissão do arquivo. A permissão precisa incluir estas configurações:
role=owner
etransferOwnership=true
. Se o novo proprietário estiver criando uma nova permissão, uma notificação por e-mail será enviada ao proprietário anterior, indicando que a propriedade foi transferida.
Quando um arquivo é transferido, o papel do proprietário anterior recebe o downgrade para writer
.
Alterar várias permissões com solicitações em lote
Recomendamos o uso de solicitações em lote para modificar várias permissões.
Veja a seguir um exemplo de modificação de permissão em lote com uma biblioteca de cliente.