Gestire le cartelle con accesso limitato ed esteso

Un utente è proprietario di una cartella Il mio Drive. La cartella potrebbe contenere più utenti con accesso a file diversi. Questo modello di accesso restrittivo consente a diversi utenti di visualizzare elenchi diversi di elementi all'interno della stessa cartella. Un utente con accesso alla cartella principale Il mio Drive, ma non a un elemento al suo interno, ha "accesso limitato". Si crea una situazione in cui è difficile sapere chi ha accesso all'interno della gerarchia.

Al contrario, i file del Drive condiviso sono di proprietà del Drive condiviso. I Drive condivisi hanno un modello espansivo, quindi ogni utente ha lo stesso elenco di elementi all'interno della stessa cartella.

L'introduzione delle cartelle con accesso limitato replica il modello di accesso ampio dei Drive condivisi a Il mio Drive. Con questa modifica, le cartelle con accesso limitato sono l'unica eccezione che consente di limitare l'accesso a una sottocartella specifica sia in Il mio Drive sia nei Drive condivisi.

Questa guida spiega come gestire le cartelle con accesso limitato e accesso ampio su Google Drive.

Informazioni sulle cartelle con accesso limitato

Limita le cartelle a utenti specifici.

Le cartelle con accesso limitato ti consentono di limitare le cartelle a utenti specifici. Solo gli utenti che aggiungi direttamente alle autorizzazioni della cartella possono aprirla e accedere ai relativi contenuti. Gli utenti con accesso ereditato alla cartella Il mio Drive o alla cartella del Drive condiviso (tramite l'accesso da una cartella principale) possono vedere la cartella con limitazioni in Drive, ma non possono aprirla. Questa funzionalità consente di allineare meglio il comportamento di condivisione degli elementi sia in Il mio Drive sia nei Drive condivisi, consentendoti di organizzare le cartelle con contenuti sensibili insieme a contenuti condivisi più ampiamente.

Le cartelle con accesso limitato sono disponibili sia in Il mio Drive sia nei Drive condivisi. Il ruolo owner in Il mio Drive e il ruolo organizer nei Drive condivisi possono sempre accedere alle cartelle con accesso limitato. Per modificare l'elenco degli utenti della cartella, non sono necessarie autorizzazioni speciali. I ruoli che possono condividere cartelle possono aggiornare gli elenchi dei membri. Per scoprire di più su ruoli e autorizzazioni, consulta Ruoli e autorizzazioni e Panoramica dei drive condivisi.

Tieni presente che, anche se le cartelle sono un tipo di file, l'accesso limitato non è disponibile per i file.

Impostare l'accesso limitato a una cartella

Sebbene gli utenti con autorizzazioni dirette per le cartelle possano accedere a una cartella con accesso limitato, solo il ruolo owner in Il mio Drive e il ruolo organizer nei Drive condivisi possono attivare o disattivare l'accesso limitato.

Inoltre, se un utente con il ruolo writer in Il mio Drive ha il campo booleano writersCanShare nella risorsa files impostato su true, può anche attivare o disattivare la funzionalità.

Per limitare l'accesso a una cartella, imposta il campo booleano inheritedPermissionsDisabled nella risorsa files su true. Se il valore è true, solo il ruolo owner, il ruolo organizer e gli utenti con autorizzazioni dirette per le cartelle possono accedervi.

Per riattivare le autorizzazioni ereditate, imposta inheritedPermissionsDisabled su false.

Verificare l'autorizzazione per limitare l'accesso a una cartella

Per verificare se puoi limitare l'accesso a una cartella, controlla i valori booleani dei campi capabilities.canDisableInheritedPermissions e capabilities.canEnableInheritedPermissions nella risorsa files. Queste impostazioni confermano se hai l'autorizzazione per limitare l'accesso a una cartella tramite il campo inheritedPermissionsDisabled.

Per ulteriori informazioni su capabilities, consulta la sezione Informazioni sulle funzionalità dei file.

Elenca le cartelle secondarie di una cartella con accesso limitato

Per verificare se puoi elencare le cartelle secondarie di una cartella, utilizza il campo booleano capabilities.canListChildren.

Il valore restituito è sempre false quando l'elemento non è una cartella o se l'accesso del richiedente ai contenuti della cartella è stato rimosso impostando inheritedPermissionsDisabled su false.

Se il tuo accesso ai contenuti della cartella è stato rimosso, puoi comunque accedere ai metadata della cartella con i metodi files.get() e files.list(). Per verificare che l'accesso sia limitato, controlla il corpo della risposta per vedere se l'elemento è una cartella con il tipo MIME application/vnd.google-apps.folder e il campo capabilities.canListChildren è impostato su false. Se provi a elencare le cartelle secondarie di una cartella di questo tipo, il risultato è sempre vuoto.

Accedere alla cartella con i metadati con accesso limitato

Le cartelle con accesso limitato ti consentono di visualizzare i metadata della cartella se non hai accesso ai contenuti della cartella.

Quando utilizzi la risorsa permissions per determinare l'accesso di un utente, sia le cartelle di Il mio Drive sia quelle dei Drive condivisi che concedono l'accesso solo ai metadati contengono i seguenti valori nel corpo della risposta: inheritedPermissionsDisabled=true e view=metadata. Il ruolo è sempre impostato su reader. Il campo view viene compilato solo per le autorizzazioni che appartengono a un view. Per ulteriori informazioni, consulta la sezione Visualizzazioni.

Per tutte le voci del campo permissionDetails, il campo inherited è impostato su true per indicare che l'autorizzazione è ereditata e che non è stato concesso l'accesso diretto ai contenuti della cartella.

Per concedere l'accesso sia ai contenuti della cartella sia ai metadati, imposta il campo inheritedPermissionsDisabled su false o aggiorna il ruolo su reader o superiore.

Infine, se un'autorizzazione è stata inizialmente limitata disattivando l'ereditarietà in una cartella (inheritedPermissionsDisabled=true) e poi l'autorizzazione è stata aggiunta di nuovo direttamente alla cartella, i valori nel corpo della risposta diventano inheritedPermissionsDisabled=true con il campo view non impostato. Se la cartella si trova in un Drive condiviso, l'elenco permissionDetails contiene una voce con il campo inherited impostato su false per indicare che l'autorizzazione non è ereditata. Come qualsiasi altra autorizzazione, questa autorizzazione concede l'accesso sia ai contenuti della cartella sia ai metadati.

Eliminare le cartelle con accesso limitato

Puoi eliminare le cartelle con accesso limitato utilizzando il metodo files.delete() nella risorsa files.

In Il mio Drive, solo il proprietario dell'elemento può eliminare una gerarchia di cartelle. Se un utente elimina una gerarchia con cartelle con accesso limitato e di proprietà di altri, queste cartelle vengono spostate in Il mio Drive del proprietario.

Se l'utente ha il ruolo owner, l'intera gerarchia viene eliminata.

Nei Drive condivisi, il ruolo organizer può eliminare le gerarchie anche se contengono cartelle con accesso limitato. Se il ruolo fileOrganizer elimina una gerarchia contenente cartelle con accesso limitato, il risultato dipende dal fatto che siano state aggiunte di nuovo come fileOrganizer alle cartelle con accesso limitato. In questo caso, l'intera gerarchia viene eliminata. In caso contrario, le cartelle con accesso limitato vengono spostate nella cartella principale del Drive condiviso.

Informazioni sull'accesso ampio

L'introduzione delle cartelle con accesso limitato amplia il modello di accesso espansivo dai Drive condivisi a Il mio Drive. Una volta implementato il modello di accesso, avere accesso a una cartella significa avere almeno lo stesso livello di accesso a tutto ciò che è presente nella gerarchia della cartella. Le cartelle con accesso limitato sono l'unica eccezione che consente di limitare l'accesso a una sottocartella specifica sia in Il mio Drive sia nei Drive condivisi. Ciò significa anche che, a meno che la cartella non abbia accesso limitato, non puoi più rimuovere l'accesso ereditato dalla cartella principale. In questo modo, l'API Drive restituisce una risposta di errore. Per definire un controllo dell'accesso più granulare all'interno di una gerarchia, puoi impostare un accesso limitato alla cartella.

Adattarsi a un accesso più ampio

Per consentire agli sviluppatori di adattarsi più facilmente all'accesso ampio, sono stati apportati diversi miglioramenti all'API Google Drive:

  1. Il campo permissionDetails[] nella risorsa permissions è ora compilato per gli elementi in Il mio Drive. In precedenza, i campi non erano impostati o venivano replicati dal campo teamDrivePermissionDetails, se opportuno. Vengono compilati solo i campi permissionType e inherited in Il mio Drive.

    Il campo permissionDetails[].inherited indica se un'autorizzazione è ereditata dall'elemento principale. Ti consente di rilevare se determinati ruoli (ad esempio reader) vengono ereditati dall'elemento principale e se un ruolo superiore (ad esempio writer) viene concesso direttamente all'elemento.

    Quando visualizzi le autorizzazioni per un elemento, il campo permissionDetails[] potrebbe contenere più voci. Se presente, è presente una voce per l'autorizzazione direttamente sull'elemento per quell'ambito, seguite dalle voci per le autorizzazioni ereditate o dei membri sull'elemento.

  2. Gli sviluppatori possono attivare il comportamento dell'API di accesso espansivo in My Drive prima di qualsiasi applicazione obbligatoria futura. Puoi impostare il parametro di richiesta enforceExpansiveAccess su true in modo che le modifiche future all'accesso ampio non influiscano sulla tua app.

    Se attivi questa opzione ora, l'API funzionerà allo stesso modo per gli elementi in Il mio Drive come già avviene per gli elementi nei Drive condivisi. Ad esempio, qualsiasi tentativo di limitare l'accesso al di sotto del ruolo ereditato non va a buon fine quando viene chiamato permissions.update(). Analogamente, una chiamata a permissions.delete() non va a buon fine se l'autorizzazione è ereditata.

Rileva e previeni l'accesso limitato

La tua app potrebbe creare un accesso limitato (in cui un utente ha accesso alla cartella principale Il mio Drive, ma non a un file al suo interno) alle cartelle Il mio Drive quando utilizzi i metodi permissions.update() o permissions.delete().

Quando utilizzi questi metodi, puoi esaminare i campi della risorsa permissions per vedere dove una richiesta potrebbe creare un accesso limitato ed evitare di inviare queste richieste. Per rilevare questa situazione, utilizza il campo enforceExpansiveAccess nella richiesta.

Inoltre, se la tua app ha già creato l'accesso limitato alle cartelle, puoi svolgere i seguenti passaggi:

  1. Esplora la gerarchia delle cartelle per rimuovere l'accesso limitato. Al suo posto, devi impostare l'accesso limitato alle cartelle.

  2. Se l'elemento che stai tentando di annullare la condivisione è un file, puoi creare una cartella intermedia, impostare l'accesso limitato e spostare il file all'interno della nuova cartella.

  3. Se non vuoi utilizzare cartelle con accesso limitato, ma devi rimuovere alcuni accessi, puoi spostare il file in una cartella privata (ad esempio la cartella principale di Il mio Drive). Puoi quindi creare un pulsante di accesso diretto alla posizione originale dell'elemento in modo che gli utenti possano continuare a utilizzarlo.