Todos os arquivos, pastas e drives compartilhados do Google Drive associados
permissions. Cada recurso
identifica a permissão de um type
específico (usuário, grupo, domínio, qualquer pessoa)
e role
, como "comentador" ou "leitor". Por exemplo, um arquivo pode ter um
permissão que concede acesso somente leitura a um usuário específico (type=user
)
(role=reader
) enquanto outra permissão concede participantes de um grupo específico
(type=group
) a capacidade de adicionar comentários a um arquivo (role=commenter
).
Para uma lista completa dos papéis e das operações permitidas em cada um deles, consulte Funções e do Cloud Storage.
Situações de compartilhamento de recursos do Drive
Há cinco tipos diferentes de cenários de compartilhamento:
Para compartilhar um arquivo no Meu Drive, o usuário precisa ter o
role=writer
ourole=owner
.Se o valor booleano
writersCanShare
estiver 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 expiração, não será possível compartilhar o arquivo. Para mais informações, consulte Definir uma data de expiração para limitar arquivos .
Para compartilhar uma pasta no Meu Drive, o usuário precisa ter
role=writer
ourole=owner
.Se o valor booleano
writersCanShare
for definido comoFalse
para o arquivo, o usuário precisa terrole=owner
, que é mais permissiva.O acesso temporário (regido por data e hora de validade) não é permitido nas pastas do Meu Drive com
role=writer
. Para mais informações, consulte Defina uma data de validade para limitar o acesso a arquivos.
Para compartilhar um arquivo em um drive compartilhado, o usuário precisa ter o
role=writer
,role=fileOrganizer
ourole=organizer
.- A configuração
writersCanShare
não se aplica aos itens nos drives compartilhados. Ele é tratado como se estivesse sempre definido comoTrue
.
- A configuração
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 definido comoFalse
, os usuários comrole=fileOrganizer
poderão compartilhar pastas nesse drive compartilhado.
- Se a restrição
Para gerenciar a associação ao drive compartilhado, o usuário precisa ter o domínio
role=organizer
. Somente os usuários e grupos podem participar de drives compartilhados.
Definir uma data de validade para limitar o acesso a arquivos
Ao trabalhar com pessoas em um projeto sensível, talvez você queira restringir o acesso deles a determinados arquivos no Drive após um período tempo de resposta. Nos arquivos em "Meu Drive", você pode definir uma data de validade como para limitar ou remover o acesso ao arquivo.
Para definir a data de validade:
- Usar o
permissions.create
e defina o métodopermissions.expirationTime
(junto com os outros campos obrigatórios). Para mais informações, consulte Criar uma permissão. - Usar o
permissions.update
e defina o campopermissions.expirationTime
(junto com o outro método campos obrigatórios). Para mais informações, consulte Alterar do Cloud Storage.
O campo expirationTime
indica quando a permissão expira usando RFC 3339
data-hora
, Os tempos de expiração têm as seguintes restrições:
- Elas só podem ser definidas com base nas permissões do usuário e do grupo.
- O horário precisa estar no futuro.
- O horário não pode ser mais de um ano à frente.
Para mais informações sobre a data de validade, consulte os seguintes artigos:
Propagação da permissão
As listas de permissões para uma pasta são propagadas para baixo, e todos os arquivos secundários e as pastas herdam permissões da pasta pai. Sempre que as permissões ou o alteração, a propagação ocorre recursivamente por todos os do Google Cloud. Por exemplo, se um arquivo existe em uma pasta que é movida dentro de outra pasta, as permissões da nova pasta serão propagadas para o arquivo. Se a nova pasta conceder ao usuário do arquivo um novo papel, como "gravador", substitui a antiga.
Por outro lado, se um arquivo herdar role=writer
de uma pasta e for movido para
outra pasta que oferece uma função de "leitor" papel, o arquivo passa a herdar
role=reader
.
Não é possível remover permissões herdadas de um arquivo ou de uma pasta em um drive compartilhado. Em vez disso, essas permissões precisam ser ajustadas no pai direto ou indireto da que foram herdados. As permissões herdadas podem ser removidas dos itens em "Meu Drive" ou em "Compartilhados comigo".
Inversamente, as permissões herdadas podem ser substituídas em um arquivo ou uma pasta em "Meus"
Google Drive. Portanto, se um arquivo herdar role=writer
de uma
pasta do Google Drive, você pode definir role=reader
no arquivo para diminuir
nível de permissão.
Recursos
O recurso Permissions não precisa
determinar a capacidade do usuário atual de executar ações em um arquivo ou uma pasta.
Em vez disso, um recurso Files contém uma coleção de
Campos booleanos capabilities
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
o recurso de permissões do usuário atual associado ao arquivo ou à pasta.
Por exemplo, quando Alex faz login no app e tenta compartilhar um arquivo, a função dele
é verificado quanto a permissões no arquivo. Se a função permitir que eles compartilhem um arquivo,
os capabilities
relacionados ao arquivo, como canShare
, são preenchidos
em relação à função. Se ele quiser compartilhar o arquivo, o app vai verificar
capabilities
para garantir que canShare
seja definido como true
.
Para um exemplo de recuperação do arquivo capabilities
, consulte Verificar usuário
do Google Cloud.
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 realizar. Por exemplo, uma permissão comtype=user
erole=reader
concede um usuário específico 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 uma lista completa de funções e as operações permitidas para cada uma delas, consulte Funções e do Cloud Storage.
Ao criar uma permissão em que type=user
ou type=group
, você também precisa
forneça um emailAddress
para emparelhar
o usuário ou grupo específico à permissão.
Ao criar uma permissão em que type=domain
, você também precisa fornecer um
domain
para vincular um domínio específico
à permissão.
Para criar uma permissão, faça o seguinte:
- Usar o método
permissions.create
com ofileId
do arquivo ou da pasta associada. - No corpo da solicitação, especifique
type
erole
. - Se for
type=user
outype=group
, forneça umemailAddress
. Se fortype=domain
, forneça umdomain
.
Mostrar um exemplo
O exemplo de código a seguir mostra como criar uma permissão. A resposta retorna uma instância de um recurso Permission
, incluindo o permissionId
atribuído.
Solicitação
POST https://www.googleapis.com/drive/v3/files/FILE_ID
/permissions
{ "requests": [ { "type": "user", "role": "commenter", "emailAddress": "alex@altostrat.com" } ] }
Resposta
{
"kind": "drive#permission",
"id": "PERMISSION_ID
",
"type": "user",
"role": "commenter"
}
Usar públicos-alvo
Públicos-alvo são grupos de pessoas, como departamentos ou equipes, que você pode recomendam para os usuários compartilharem itens. Você pode incentivar os usuários a compartilhar itens para um público mais específico ou limitado, e não todo o seu organização. Os públicos-alvo ajudam a melhorar a segurança e a privacidade seus dados e facilitar o compartilhamento adequado pelos usuários. Para mais informações, consulte Sobre a segmentação públicos-alvo ,
Para usar públicos-alvo:
No Google Admin Console, acesse Menu > Diretório > Públicos-alvo.
Para essa tarefa, você precisa fazer login usando uma conta com privilégios de superadministrador.
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 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 conferir como os usuários interagem com os públicos-alvo, acesse Experiência do usuário para o link compartilhamento ,
Recuperar todas as permissões de um arquivo, uma pasta ou um drive compartilhado
Use o método permissions.list
para
recuperam todas as permissões de um arquivo, uma pasta ou um drive compartilhado;
Mostrar um exemplo
O exemplo de código a seguir mostra como receber todas as permissões. A resposta retorna uma lista de permissões.
Solicitação
GET https://www.googleapis.com/drive/v3/files/FILE_ID
/permissions
Resposta
{
"kind": "drive#permissionList",
"permissions": [
{
"id": "PERMISSION_ID
",
"type": "user",
"kind": "drive#permission",
"role": "commenter"
}
]
}
Verificar as permissões do usuário
Ao abrir um arquivo, o app verifica os recursos dele e faz a renderização
interface 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
precisa ser desativado na interface.
Para mais informações sobre capabilities
, consulte a seção Capabilities
acima.
Para verificar os recursos, chame files.get
com
fileId
e o parâmetro fields
definidos para o campo capabilities
. Para
Para mais informações sobre como retornar campos usando o parâmetro fields
, consulte
Retornar campos específicos para um arquivo.
Mostrar um exemplo
O exemplo de código a seguir mostra como verificar as permissões do usuário. A resposta retorna uma lista das permissões que o usuário tem no arquivo. Cada recurso corresponde a uma ação específica que um usuário pode realizar. Alguns campos só são preenchidos para itens nos drives compartilhados.
Solicitação
GET https://www.googleapis.com/drive/v3/files/FILE_ID
?fields=capabilities
Resposta
{ "capabilities": { "canAcceptOwnership": false, "canAddChildren": false, "canAddMyDriveParent": false, "canChangeCopyRequiresWriterPermission": true, "canChangeSecurityUpdateEnabled": false, "canComment": true, "canCopy": true, "canDelete": true, "canDownload": true, "canEdit": true, "canListChildren": false, "canModifyContent": true, "canModifyContentRestriction": true, "canModifyLabels": true, "canMoveChildrenWithinDrive": false, "canMoveItemOutOfDrive": true, "canMoveItemWithinDrive": true, "canReadLabels": true, "canReadRevisions": true, "canRemoveChildren": false, "canRemoveMyDriveParent": true, "canRename": true, "canShare": true, "canTrash": true, "canUntrash": true } }
Determinar a origem da função nos arquivos dos drives compartilhados e pastas
Para alterar o papel em um arquivo ou uma pasta, você precisa saber a origem do papel. Nos drives compartilhados, a origem de um papel pode ser baseada na associação ao no drive, no papel em uma pasta ou em um arquivo.
Para determinar a origem do papel de um drive compartilhado ou itens desse drive
dirigir, chame permissions.get
com o
fileId
, o permissionId
e o parâmetro fields
definidos como
permissionDetails
. Para encontrar o permissionId
, use
permissions.list
pelo fileId
. Para
buscar o campo permissionDetails
na solicitação permissions.list
, definir a
fields
como permissions/permissionDetails
.
Esse campo enumera todas as permissões de arquivo herdadas e diretas do usuário. grupo ou domínio.
Mostrar um exemplo
O exemplo de código a seguir mostra como determinar a origem do papel. A resposta retorna o permissionDetails
de um recurso Permission
. O campo inheritedFrom
fornece o ID do item do qual a permissão é herdada.
Solicitação
GET https://www.googleapis.com/drive/v3/files/FILE_ID
/permissions/PERMISSION_ID
?fields=permissionDetails&supportsAllDrives=true
Resposta
{
"permissionDetails": [
{
"permissionType": "member",
"role": "commenter",
"inheritedFrom": "INHERITED_FROM_ID
",
"inherited": true
},
{
"permissionType": "file",
"role": "writer",
"inherited": false
}
]
}
Alterar permissões
Para mudar 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, pasta ou drive compartilhado associado. Para encontrar opermissionId
, usepermissions.list
pelofileId
.Na solicitação, identifique o novo
role
.
Você pode conceder permissões em pastas ou arquivos específicos em um drive compartilhado, até mesmo
se o usuário ou grupo já for membro. Por exemplo, Alex tem role=commenter
como parte da associação a um drive compartilhado. No entanto, seu app pode conceder permissão
role=writer
para um arquivo em um drive compartilhado. Nesse caso, como a nova função
mais permissivo do que o papel concedido pela associação, o novo
se torna o papel efetivo do arquivo ou da pasta.
Mostrar um exemplo
O exemplo de código a seguir mostra como alterar as permissões em um arquivo ou pasta de comentarista para gravador. A resposta retorna uma instância de um recurso Permission
.
Solicitação
PATCH https://www.googleapis.com/drive/v3/files/FILE_ID
/permissions/PERMISSION_ID
{ "requests": [ { "role": "writer" } ] }
Resposta
{
"kind": "drive#permission",
"id": "PERMISSION_ID
",
"type": "user",
"role": "writer"
}
Revogar acesso a um arquivo ou uma pasta
Para revogar o acesso a um arquivo ou pasta, chame
delete
com a fileId
e o
permissionId
para excluir a permissão.
Para os itens em "Meu Drive", é possível excluir um modelo permissão. Excluir uma permissão herdada revoga o acesso ao item e itens secundários, se houver.
Para itens em um drive compartilhado, as permissões herdadas não podem ser revogadas. Atualizar ou revogue a permissão no arquivo ou na pasta principal.
A operação delete
também é usada para excluir permissões aplicadas diretamente a uma
de um drive compartilhado.
Mostrar um exemplo
O exemplo de código a seguir mostra como revogar o acesso excluindo um permissionId
. Se a solicitação for concluída, o corpo da resposta estará vazio. Para confirmar que a permissão foi removida, use permissions.list
com o fileId
.
Solicitação
DELETE https://www.googleapis.com/drive/v3/files/FILE_ID
/permissions/PERMISSION_ID
Transferir a propriedade de arquivos para outra conta do Google Workspace na mesma organização
Propriedade de arquivos em "Meu Drive" podem ser transferidos de uma conta do Google Workspace para outra conta na mesma organização. Uma organização proprietária de um Drive é o proprietário dos arquivos. Portanto, as transferências de propriedade não são compatíveis para arquivos e pastas nos drives compartilhados. Os organizadores de um drive compartilhado podem mover itens desse drive compartilhado para seu próprio "Meu Drive" quais transfere a propriedade a ele.
Para transferir a propriedade de um arquivo de "Meu Drive", siga um destes procedimentos: seguintes:
Criar uma permissão de arquivo que concede a um usuário específico (
type=user
) acesso de proprietário (role=owner
).Atualizar a permissão de um arquivo existente com
role=owner
e transferir 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 de uma conta pessoal para outra. No entanto, o Drive não transfere a propriedade de um arquivo entre duas consumidor contas até que o novo proprietário em potencial concorde explicitamente com a transferência. Para transferir a propriedade do arquivo de uma conta pessoal para outra:
O proprietário atual inicia uma transferência de propriedade criando ou atualizando a permissão de arquivo do novo proprietário em potencial. A permissão precisa incluir estas configurações:
role=writer
,type=user
ependingOwner=true
. Se o o novo proprietário está criando uma permissão para o proprietário em potencial, um e-mail é enviada para o novo proprietário em potencial indicando que ele sendo solicitado a assumir a propriedade do arquivo.O novo proprietário aceita a solicitação de transferência de propriedade criando ou atualizando a permissão dos arquivos. A permissão precisa incluir estas configurações:
role=owner
etransferOwnership=true
. Se o novo proprietário estiver criando um nova permissão, uma notificação por e-mail será enviada para o proprietário anterior indicando que a propriedade foi transferida.
Quando um arquivo é transferido, a função do proprietário anterior é rebaixada para writer
.
Alterar várias permissões com solicitações em lote
É altamente recomendável usar solicitações em lote para modificar vários permissões.
O exemplo a seguir mostra como realizar uma modificação de permissão em lote com uma biblioteca de cliente.