Gestire le proposte di accesso in attesa

Una proposta di accesso è una proposta di un richiedente a un approvatore per concedere a un destinatario l'accesso a un elemento di Google Drive.

Un approvatore può esaminare e intervenire su tutte le proposte di accesso non risolte nei file di Drive. Ciò significa che puoi velocizzare la procedura di approvazione con una query programmatica per le proposte di accesso e poi risolverle. Inoltre, consente a un approvatore di visualizzare le proposte in forma aggregata.

L'API Google Drive fornisce la risorsa accessproposals per consentirti di visualizzare e risolvere le proposte di accesso in attesa. I metodi della risorsa accessproposals funzionano su file, cartelle e file all'interno di un Drive condiviso, ma non sul Drive condiviso.

I seguenti termini sono specifici per le proposte di accesso:

  • Richiedente: l'utente che avvia la proposta di accesso a un elemento di Drive.
  • Destinatario: l'utente che riceve le autorizzazioni aggiuntive su un file se la proposta di accesso viene concessa. Spesso il destinatario corrisponde all'autore della richiesta, ma non sempre.
  • Approvatore: l'utente responsabile dell'approvazione (o del rifiuto) della proposta di accesso. In genere, perché sono proprietari del documento o hanno la possibilità di condividerlo.

Elenca le proposte di accesso in attesa

Per elencare tutte le proposte di accesso in attesa per un elemento di Drive, chiama il metodo list() sulla risorsa accessproposals e includi il parametro di percorso fileId.

Solo gli approvatori di un file possono elencare le proposte in attesa in un file. Un approvatore è un utente con la funzionalità can_approve_access_proposals per il file. Se il richiedente non è un approvatore, viene restituito un elenco vuoto. Per ulteriori informazioni su capabilities, consulta Informazioni sulle funzionalità dei file.

Il corpo della risposta è costituito da un oggetto AccessProposal che rappresenta un elenco di proposte di accesso irrisolte nel file.

L'oggetto AccessProposal include informazioni su ogni proposta, ad esempio il richiedente, il destinatario e il messaggio aggiunto dal richiedente. Inoltre, include un oggetto AccessProposalRoleAndView che raggruppa il role proposto dal richiedente con un view. Poiché role è un campo ripetuto, potrebbero esistere più valori per ogni proposta. Ad esempio, una proposta potrebbe avere un oggetto AccessProposalRoleAndView di role=reader e view=published, oltre a un altro oggetto AccessProposalRoleAndView con solo il valore role=writer. Per ulteriori informazioni, consulta la sezione Visualizzazioni.

Passa i seguenti parametri di query per personalizzare la paginazione o filtrare le proposte di accesso:

  • pageToken: un token di pagina ricevuto da una precedente chiamata dell'elenco. Fornisci questo token per recuperare la pagina successiva.

  • pageSize: il numero massimo di proposte di accesso da restituire per pagina.

Risolvere le proposte di accesso in attesa

Per risolvere tutte le proposte di accesso in attesa su un elemento di Drive, chiama il metodo resolve() sulla risorsa accessproposals e includi i parametri di percorso fileId e proposalId.

Il metodo resolve() include un parametro di query action che indica l'azione da intraprendere in merito alla proposta. L'oggetto Action monitora la variazione dello stato della proposta, in modo da sapere se viene accettata o rifiutata.

Il metodo resolve() include anche i parametri di query facoltativi role e view. Gli unici ruoli supportati sono writer, commenter e reader. Se il ruolo non è specificato, il valore predefinito è reader. Un ulteriore parametro di query facoltativo send_notification ti consente di inviare una notifica via email all'autore della richiesta quando la proposta viene accettata o rifiutata.

Come per il metodo list(), gli utenti che risolvono la proposta devono disporre della funzionalità can_approve_access_proposals sul file. Per ulteriori informazioni su capabilities, consulta Informazioni sulle funzionalità dei file.

Le proposte vengono risolte utilizzando gli stessi pattern elencati nella sezione Scenari per la condivisione delle risorse di Drive. Se esistono più proposte per lo stesso utente, ma con ruoli diversi, si applica quanto segue:

  • Se una proposta viene accettata e l'altra rifiutata, il ruolo accettato viene applicato all'elemento Drive.
  • Se entrambe le proposte vengono accettate contemporaneamente, viene applicata la proposta con l'autorizzazione più elevata (ad esempio role=writer rispetto a role=reader). L'altra proposta di accesso viene rimossa dall'articolo.

Dopo aver inviato una proposta al metodo resolve(), l'azione di condivisione è completata. AccessProposal non viene più restituito tramite il metodo list(). Una volta accettata la proposta, l'utente deve utilizzare la raccolta permissions per aggiornare le autorizzazioni su un file o una cartella. Per ulteriori informazioni, consulta la sezione Aggiornare le autorizzazioni.