Gérer les propositions d'accès en attente

Une proposition d'accès est une proposition d'un demandeur à un approbateur d'accorder à un destinataire l'accès à un élément Google Drive.

Un approbateur peut examiner et traiter toutes les propositions d'accès non résolues pour les fichiers Drive. Vous pouvez ainsi accélérer le processus d'approbation en interrogeant de manière programmatique des propositions d'accès, puis en les résolvant. Il permet également à un approbateur de consulter les propositions de manière globale.

L'API Google Drive fournit la ressource accessproposals pour que vous puissiez afficher et résoudre les propositions d'accès en attente. Les méthodes de la ressource accessproposals fonctionnent sur les fichiers, les dossiers et les fichiers d'un Drive partagé, mais pas sur le Drive partagé.

Les termes suivants sont spécifiques aux propositions d'accès:

  • Demandeur: utilisateur qui lance la proposition d'accès à un élément Drive.
  • Destinataire: utilisateur qui reçoit les autorisations supplémentaires sur un fichier si la proposition d'accès est accordée. Le destinataire est souvent identique au demandeur, mais ce n'est pas toujours le cas.
  • Approbateur: utilisateur chargé d'approuver (ou de refuser) la proposition d'accès. Cela est généralement dû au fait qu'il est propriétaire du document ou qu'il peut le partager.

Répertorier les propositions d'accès en attente

Pour répertorier toutes les propositions d'accès en attente sur un élément Drive, appelez la méthode list() sur la ressource accessproposals et incluez le paramètre de chemin fileId.

Seuls les approbateurs d'un fichier peuvent afficher les propositions en attente associées. Un approbateur est un utilisateur disposant de la fonctionnalité can_approve_access_proposals sur le fichier. Si le demandeur n'est pas un approbateur, une liste vide est renvoyée. Pour en savoir plus sur capabilities, consultez la section Comprendre les fonctionnalités de fichier.

Le corps de la réponse consiste en un objet AccessProposal représentant une liste de propositions d'accès non résolues sur le fichier.

L'objet AccessProposal inclut des informations sur chaque proposition, telles que le demandeur, le destinataire et le message ajouté par le demandeur. Il comprend également un objet AccessProposalRoleAndView qui regroupe les role proposés par le demandeur avec un view. Étant donné que role est un champ répété, plusieurs valeurs peuvent exister pour chaque proposition. Par exemple, une proposition peut comporter un objet AccessProposalRoleAndView de role=reader et view=published, ainsi qu'un objet AccessProposalRoleAndView supplémentaire avec uniquement la valeur role=writer. Pour en savoir plus, consultez la section Vues.

Transmettez les paramètres de requête suivants pour personnaliser la pagination ou filtrer les propositions d'accès:

  • pageToken: jeton de page reçu d'un appel de liste précédent. Fournissez ce jeton pour récupérer la page suivante.

  • pageSize: nombre maximal de propositions d'accès à renvoyer par page.

Résoudre les propositions d'accès en attente

Pour résoudre toutes les propositions d'accès en attente sur un élément Drive, appelez la méthode resolve() sur la ressource accessproposals et incluez les paramètres de chemin fileId et proposalId.

La méthode resolve() inclut un paramètre de requête action qui indique l'action à effectuer sur la proposition. L'objet Action suit l'évolution de l'état de la proposition afin que nous sachions si elle est acceptée ou refusée.

La méthode resolve() inclut également les paramètres de requête facultatifs role et view. Les seuls rôles compatibles sont writer, commenter et reader. Si le rôle n'est pas spécifié, la valeur par défaut est reader. Un paramètre de requête facultatif supplémentaire de send_notification vous permet d'envoyer une notification par e-mail au demandeur lorsque la proposition est acceptée ou refusée.

Comme pour la méthode list(), les utilisateurs qui résolvent la proposition doivent disposer de la fonctionnalité can_approve_access_proposals sur le fichier. Pour en savoir plus sur capabilities, consultez la section Comprendre les fonctionnalités des fichiers.

Les propositions sont résolues à l'aide des mêmes modèles listés sous Scénarios de partage des ressources Drive. Si plusieurs propositions sont faites pour le même utilisateur, mais avec des rôles différents, le cas suivant s'applique:

  • Si une proposition est acceptée et une autre refusée, le rôle accepté s'applique à l'élément Drive.
  • Si les deux propositions sont acceptées en même temps, la proposition avec l'autorisation la plus élevée (par exemple, role=writer par rapport à role=reader) est appliquée. L'autre proposition d'accès est supprimée de l'élément.

Une fois une proposition envoyée à la méthode resolve(), l'action de partage est terminée. Le AccessProposal n'est plus renvoyé via la méthode list(). Une fois la proposition acceptée, l'utilisateur doit utiliser la collection permissions pour mettre à jour les autorisations d'un fichier ou d'un dossier. Pour en savoir plus, consultez la section Modifier les autorisations.