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 accelerare la procedura di approvazione eseguendo query a livello di programmazione per le proposte di accesso e risolvendole. Inoltre, consente a un approvatore di visualizzare le proposte in forma aggregata.

L'API Google Drive fornisce la risorsa accessproposals per 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. Molte volte il destinatario è lo stesso del richiedente, ma non sempre.
  • Responsabile approvazione: l'utente responsabile dell'approvazione (o del rifiuto) della proposta di accesso. In genere, questo accade 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. Un approvatore è un utente con la funzionalità can_approve_access_proposals sul file. Se il richiedente non è un approvatore, viene restituito un elenco vuoto. Per ulteriori informazioni su capabilities, vedi Informazioni sulle funzionalità dei file.

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

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

Trasmetti 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 per 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 tiene traccia della modifica 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 parametro di query facoltativo aggiuntivo di send_notification ti consente di inviare una notifica via email al richiedente quando la proposta viene accettata o rifiutata.

Proprio 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, vedi Informazioni sulle funzionalità dei file.

Le proposte vengono risolte utilizzando gli stessi pattern elencati in Scenari per la condivisione di 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 di Drive.
  • Se entrambe le proposte vengono accettate contemporaneamente, viene applicata quella con l'autorizzazione più elevata (ad esempio, role=writer rispetto a role=reader). L'altra proposta di accesso viene rimossa dall'elemento.

Una volta inviata 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 di un file o di una cartella. Per ulteriori informazioni, vedi Aggiornare le autorizzazioni.