Un usuario es propietario de una carpeta de Mi unidad. La carpeta puede contener varios usuarios con acceso a diferentes archivos. Este modelo de acceso restrictivo significa que diferentes usuarios pueden ver diferentes listas de elementos dentro de la misma carpeta. Un usuario que tiene acceso a la carpeta superior de Mi unidad, pero no a un elemento dentro de esa carpeta, tiene “acceso restringido”. Crea una situación en la que es difícil saber quién tiene acceso dentro de la jerarquía.
Por el contrario, los archivos de la unidad compartida son propiedad de la unidad compartida. Las unidades compartidas tienen un modelo expansivo para que cada usuario tenga la misma lista de elementos dentro de la misma carpeta.
La incorporación de carpetas con acceso limitado replica el modelo de acceso expansivo de las unidades compartidas a Mi unidad. Con este cambio, las carpetas con acceso limitado son la única excepción que permite restringir el acceso a una subcarpeta específica en Mi unidad y en las unidades compartidas.
En esta guía, se explica cómo puedes administrar carpetas con acceso limitado y acceso ilimitado en Google Drive.
Información acerca de las carpetas con acceso limitado
Las carpetas con acceso limitado te permiten restringir carpetas a usuarios específicos. Solo los usuarios que agregues directamente a los permisos de la carpeta pueden abrirla y acceder a su contenido. Los usuarios con acceso heredado a la carpeta compartida de Mi unidad o a la carpeta de la unidad compartida (a través del acceso desde una carpeta superior) pueden ver la carpeta restringida en Drive, pero no pueden abrirla. Esta función alinea mejor el comportamiento de uso compartido de los elementos en Mi unidad y las unidades compartidas, lo que te permite organizar carpetas con contenido sensible junto con contenido compartido de forma más amplia.
Las carpetas con acceso limitado están disponibles en Mi unidad y en las unidades compartidas. El rol owner
en Mi unidad y el rol organizer
en las unidades compartidas siempre pueden acceder a las carpetas con acceso limitado. Para modificar la lista de usuarios de la carpeta, no se requieren permisos especiales. Los roles que pueden compartir carpetas pueden actualizar las listas de miembros. Para obtener más información sobre los roles y los permisos, consulta Roles y permisos y Descripción general de las unidades compartidas.
Ten en cuenta que, aunque las carpetas son un tipo de archivo, el acceso limitado no está disponible para los archivos.
Cómo establecer acceso limitado a una carpeta
Si bien los usuarios con permisos directos de carpetas pueden acceder a una carpeta con acceso limitado, solo el rol owner
en Mi unidad y el rol organizer
en las unidades compartidas pueden habilitar o inhabilitar el acceso limitado.
Además, si un usuario con el rol writer
en Mi unidad tiene
el campo booleano writersCanShare
en el recurso files
configurado como true
, también puede activar o desactivar la función.
Para limitar el acceso a una carpeta, establece el campo booleano inheritedPermissionsDisabled
en el recurso files
en true
. Cuando es true
, solo el rol owner
, el rol organizer
y los usuarios con permisos de carpeta directa pueden acceder a él.
Para volver a activar los permisos heredados, establece inheritedPermissionsDisabled
en false
.
Verifica el permiso para limitar el acceso a una carpeta
Para verificar si puedes limitar el acceso a una carpeta, inspecciona los valores booleanos de los campos capabilities.canDisableInheritedPermissions
y capabilities.canEnableInheritedPermissions
en el recurso files
. Esta configuración confirma si tienes permiso para limitar el acceso a una carpeta a través del campo inheritedPermissionsDisabled
.
Para obtener más información sobre capabilities
, consulta Información sobre las capacidades de los archivos.
Lista de elementos secundarios de una carpeta con acceso limitado
Para verificar si puedes enumerar los elementos secundarios de una carpeta, usa el campo booleano capabilities.canListChildren
.
El valor que se muestra siempre es false
cuando el elemento no es una carpeta o si se quitó el acceso del solicitante al contenido de la carpeta configurando inheritedPermissionsDisabled
como false
.
Si se quitó tu acceso al contenido de la carpeta, aún puedes acceder a los metadata de la carpeta con los métodos files.get()
y files.list()
. Para confirmar que el acceso es limitado, verifica el cuerpo de la respuesta para ver si el elemento es una carpeta con el tipo de MIME application/vnd.google-apps.folder
y si el campo capabilities.canListChildren
está configurado como falso. Si intentas enumerar los elementos secundarios de una carpeta de este tipo, el resultado siempre estará vacío.
Cómo acceder a una carpeta con metadatos de acceso limitado
Las carpetas con acceso limitado te permiten ver los metadata de la carpeta si no tienes acceso al contenido.
Cuando usas el recurso permissions
para determinar el acceso de un usuario, las carpetas de Mi unidad y de unidades compartidas que solo otorgan acceso a los metadatos contienen los siguientes valores en el cuerpo de la respuesta: inheritedPermissionsDisabled=true
y view=metadata
. El rol siempre se establece en reader
. El campo view
solo se propaga para los permisos que pertenecen a un view
. Para obtener más información, consulta Vistas.
Todas las entradas del campo permissionDetails
tienen el campo inherited
configurado como true
para indicar que el permiso se hereda y que no se otorgó acceso directo al contenido de la carpeta.
Para otorgar acceso al contenido y los metadatos de la carpeta, establece el campo inheritedPermissionsDisabled
en false
o actualiza el rol a reader
o uno superior.
Por último, si primero se limitó un permiso desactivando la herencia en una carpeta (inheritedPermissionsDisabled=true
) y, luego, se volvió a agregar el permiso directamente a la carpeta, los valores en el cuerpo de la respuesta se convierten en inheritedPermissionsDisabled=true
con el campo view
sin establecer. Si la
carpeta está en una unidad compartida, la lista permissionDetails
tiene una entrada con el
campo inherited
establecido en false
para indicar que el permiso no se hereda. Este permiso otorga acceso al contenido de la carpeta y a los metadatos, como cualquier otro permiso.
Cómo borrar carpetas con acceso limitado
Puedes borrar carpetas con acceso limitado con el método files.delete()
en el recurso files
.
En Mi unidad, solo el propietario del elemento puede borrar una jerarquía de carpetas. Si un usuario borra una jerarquía con carpetas que tienen acceso limitado y que pertenecen a otras personas, estas carpetas se trasladan a Mi unidad del propietario.
Si el usuario tiene el rol owner
, se borrará toda la jerarquía.
En las unidades compartidas, el rol organizer
puede borrar jerarquías, incluso si contienen carpetas con acceso limitado. Si el rol fileOrganizer
borra una jerarquía que contiene carpetas con acceso limitado, el resultado depende de si se volvieron a agregar como fileOrganizer
en las carpetas con acceso limitado. Si es así, se borrará toda la jerarquía. De lo contrario, las carpetas con acceso limitado se moverán a la carpeta raíz de la unidad compartida.
Información acerca del acceso ampliado
La incorporación de carpetas con acceso limitado amplía el modelo de acceso expansivo de las unidades compartidas a Mi unidad. Una vez que se lance el modelo de acceso, tener acceso a una carpeta significa tener, al menos, el mismo nivel de acceso a todo lo que se encuentra en esa jerarquía de carpetas. Las carpetas con acceso limitado son la única excepción que permite restringir el acceso a una subcarpeta específica en Mi unidad y en las unidades compartidas. Esto también significa que, a menos que tu carpeta tenga acceso limitado, ya no podrás quitar el acceso heredado de la carpeta superior. Si lo haces, la API de Drive mostrará una respuesta de error. Para definir un control de acceso más detallado dentro de una jerarquía, puedes establecer acceso limitado en la carpeta.
Adaptarse al acceso ampliado
Para que los desarrolladores se adapten más fácilmente al acceso ampliado, se realizaron varias mejoras en la API de Google Drive:
El campo
permissionDetails[]
en el recursopermissions
ahora se propaga para los elementos de Mi unidad. Anteriormente, los campos no se configuraban o se replicaban desde el campoteamDrivePermissionDetails
cuando correspondía. Solo se propagan los campospermissionType
yinherited
en Mi unidad.El campo
permissionDetails[].inherited
indica si un permiso se hereda del elemento superior. Te permite detectar si ciertos roles (comoreader
) se heredan del elemento superior y si se otorga directamente un rol superior (comowriter
) en el elemento.Cuando veas los permisos de un elemento, el campo
permissionDetails[]
podría contener varias entradas. Si está presente, hay una entrada para el permiso directamente en el elemento de ese alcance y, luego, entradas para los permisos heredados o de miembro en el elemento.Los desarrolladores pueden habilitar el comportamiento de la API de acceso expansivo en Mi Drive antes de que se aplique cualquier aplicación forzosa en el futuro. Puedes establecer el parámetro de solicitud
enforceExpansiveAccess
entrue
para que los cambios futuros en el acceso expansivo no afecten a tu app.Si habilitas esta opción ahora, la API funcionará de la misma manera para los elementos de Mi Drive que para los elementos de las unidades compartidas. Por ejemplo, cualquier intento de restringir el acceso por debajo del rol heredado falla cuando se llama a
permissions.update()
. Del mismo modo, una llamada apermissions.delete()
falla si se hereda el permiso.
Detecta y evita el acceso restringido
Es posible que tu app esté creando acceso restringido (en el que un usuario tiene acceso a la carpeta superior de Mi unidad, pero no a un archivo dentro de esa carpeta) en tus carpetas de Mi unidad cuando usas los métodos permissions.update()
o permissions.delete()
.
Cuando uses estos métodos, puedes revisar los campos del recurso permissions
para ver dónde una solicitud podría crear acceso restringido y evitar enviar esas solicitudes. Para detectar esta situación, usa el campo enforceExpansiveAccess
en tu solicitud.
Además, si tu app ya creó acceso restringido en tus carpetas, puedes seguir estos pasos:
Explora la jerarquía de carpetas para quitar el acceso restringido. En su lugar, debes configurar el acceso limitado a la carpeta.
Si el elemento que intentas dejar de compartir es un archivo, puedes crear una carpeta intermedia, establecer acceso limitado en ella y mover el archivo dentro de la carpeta nueva.
Si no quieres usar carpetas de acceso limitado, pero debes quitar algunos accesos, puedes mover el archivo a una carpeta privada (como la carpeta raíz de Mi unidad). Luego, puedes crear un atajo a la ubicación original del elemento para que los usuarios puedan seguir usándolo.
Temas relacionados
- Cómo compartir archivos, carpetas y unidades
- Cómo funciona el acceso a los archivos en unidades compartidas
- Más información sobre las carpetas con acceso limitado