Administra las propuestas de acceso pendientes

Una propuesta de acceso es una propuesta de un solicitante a un revisor para otorgarle acceso a un elemento de Google Drive a un destinatario.

Los revisores pueden revisar y tomar medidas en relación con todas las propuestas de acceso no resueltas en los archivos de Drive. Esto significa que puedes acelerar el proceso de aprobación consultando de forma programática las propuestas de acceso y, luego, resolviéndolas. También permite que un revisor vea las propuestas de forma agregada.

La API de Google Drive proporciona el recurso accessproposals para que puedas ver y resolver las propuestas de acceso pendientes. Los métodos del recurso accessproposals funcionan en archivos, carpetas y los archivos dentro de una unidad compartida, pero no en la unidad compartida.

Los siguientes términos son específicos de las propuestas de acceso:

  • Solicitante: Es el usuario que inicia la propuesta de acceso a un elemento de Drive.
  • Destinatario: Es el usuario que recibe los permisos adicionales en un archivo si se otorga la propuesta de acceso. Muchas veces, el destinatario es el mismo que el solicitante, pero no siempre.
  • Aprobador: Es el usuario responsable de aprobar (o rechazar) la propuesta de acceso. Por lo general, esto se debe a que son propietarios del documento o pueden compartirlo.

Cómo ver la lista de propuestas de acceso pendientes

Para enumerar todas las propuestas de acceso pendientes en un elemento de Drive, llama al método list() en el recurso accessproposals y, luego, incluye el parámetro de ruta fileId.

Solo los revisores de un archivo pueden mostrar las propuestas pendientes en un archivo. Un revisor es un usuario con la función can_approve_access_proposals en el archivo. Si el solicitante no es un revisor, se muestra una lista vacía. Para obtener más información sobre capabilities, consulta Información sobre las capacidades de los archivos.

El cuerpo de la respuesta consiste en un objeto AccessProposal que representa una lista de propuestas de acceso no resueltas en el archivo.

El objeto AccessProposal incluye información sobre cada propuesta, como el solicitante, el destinatario y el mensaje que agregó el solicitante. También incluye un objeto AccessProposalRoleAndView que agrupa el role propuesto por el solicitante con un view. Dado que role es un campo repetido, podría haber varios para cada propuesta. Por ejemplo, una propuesta podría tener un objeto AccessProposalRoleAndView de role=reader y view=published, además de un objeto AccessProposalRoleAndView adicional con solo el valor role=writer. Para obtener más información, consulta Vistas.

Pasa los siguientes parámetros de consulta para personalizar la paginación de las propuestas de acceso o filtrarlas:

  • pageToken: Es un token de página, recibido desde una llamada a lista anterior. Proporciona este token para recuperar la página siguiente.

  • pageSize: Es la cantidad máxima de propuestas de acceso que se mostrarán por página.

Cómo resolver las propuestas de acceso pendientes

Para resolver todas las propuestas de acceso pendientes en un elemento de Drive, llama al método resolve() en el recurso accessproposals y, luego, incluye los parámetros de ruta fileId y proposalId.

El método resolve() incluye un parámetro de consulta action que denota la acción que se debe realizar en la propuesta. El objeto Action realiza un seguimiento del cambio de estado de la propuesta para que sepamos si se acepta o se rechaza.

El método resolve() también incluye los parámetros de consulta opcionales de role y view. Los únicos roles admitidos son writer, commenter y reader. Si no se especifica el rol, el valor predeterminado es reader. Un parámetro de consulta opcional adicional de send_notification te permite enviar una notificación por correo electrónico al solicitante cuando se acepte o rechace la propuesta.

Al igual que con el método list(), los usuarios que resuelven la propuesta deben tener la función can_approve_access_proposals en el archivo. Para obtener más información sobre capabilities, consulta Información sobre las capacidades de los archivos.

Las propuestas se resuelven con los mismos patrones que se indican en Situaciones para compartir recursos de Drive. Si hay varias propuestas para el mismo usuario, pero con roles diferentes, se aplica lo siguiente:

  • Si se acepta una propuesta y se rechaza otra, el rol aceptado se aplica al elemento de Drive.
  • Si se aceptan ambas propuestas al mismo tiempo, se aplica la propuesta con el permiso más alto (por ejemplo, role=writer en comparación con role=reader). La otra propuesta de acceso se quita del elemento.

Después de enviar una propuesta al método resolve(), se completa la acción de uso compartido. El AccessProposal ya no se muestra a través del método list(). Una vez que se acepta la propuesta, el usuario debe usar la colección permissions para actualizar los permisos de un archivo o una carpeta. Para obtener más información, consulta Actualiza los permisos.