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

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

Un approbateur peut examiner toutes les propositions d'accès non résolues pour les fichiers Drive et y répondre. Cela signifie que vous pouvez accélérer le processus d'approbation en interrogeant de manière programmatique les propositions d'accès, puis en les résolvant. Il permet également à un approbateur d'afficher les propositions de manière agrégée.

L'API Google Drive fournit la ressource accessproposals pour vous permettre d'afficher et de 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é lui-même.

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 recevra les autorisations supplémentaires sur un fichier si la proposition d'accès est acceptée. Souvent, le destinataire est le même que le demandeur, mais pas toujours.
  • Approbateur : utilisateur chargé d'approuver (ou de refuser) la proposition d'accès. Cela se produit généralement lorsqu'ils sont propriétaires du document ou qu'ils peuvent le partager.

Lister les propositions d'accès en attente

Pour lister 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 d'accès fileId.

Seuls les approbateurs d'un fichier peuvent lister les propositions en attente sur ce fichier. 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 Comprendre les fonctionnalités des fichiers.

Le corps de la réponse se compose d'un objet AccessProposal représentant une liste de propositions d'accès non résolues au fichier.

L'objet AccessProposal inclut des informations sur chaque proposition, comme le demandeur, le destinataire et le message ajouté par le demandeur. Il inclut é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 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 d'accès 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 pour savoir 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 acceptés 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 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 suggestion doivent disposer de la fonctionnalité can_approve_access_proposals sur le fichier. Pour en savoir plus sur capabilities, consultez Comprendre les fonctionnalités des fichiers.

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

  • Si une proposition est acceptée et l'autre refusée, le rôle accepté s'applique à l'élément Drive.
  • Si les deux propositions sont acceptées en même temps, celle qui accorde le plus d'autorisations (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 la proposition envoyée à la méthode resolve(), l'action de partage est terminée. L'AccessProposal n'est plus renvoyé par la méthode list(). Une fois la proposition acceptée, l'utilisateur doit utiliser la collection permissions pour mettre à jour les autorisations sur un fichier ou un dossier. Pour en savoir plus, consultez Mettre à jour les autorisations.