Zarządzanie folderami z ograniczonym i rozszerzonym dostępem

Użytkownik jest właścicielem folderu na Moim dysku. Folder może zawierać wielu użytkowników z dostępem do różnych plików. Ten model ograniczonego dostępu oznacza, że w tym samym folderze różni użytkownicy mogą widzieć różne listy elementów. Użytkownik mający dostęp do folderu nadrzędnego na Moim dysku, ale nie do elementu w tym folderze ma „dostęp ograniczony”. W takich przypadkach trudno jest ustalić, kto ma dostęp w ramach hierarchii.

Z kolei pliki na dysku współdzielonym są własnością tego dysku. Dyski udostępnione mają model rozszerzony, więc każdy użytkownik ma tę samą listę elementów w tym samym folderze.

Wprowadzenie folderów z ograniczonym dostępem odzwierciedla rozszerzony model dostępu z dysków współdzielonych na Mój dysk. W ramach tej zmiany foldery z ograniczonym dostępem są jedynym wyjątkiem, który pozwala ograniczyć dostęp do konkretnego podfolderu zarówno na Moim dysku, jak i na dyskach współdzielonych.

Z tego przewodnika dowiesz się, jak zarządzać folderami z ograniczonym i rozszerzonym dostępem na Dysku Google.

Foldery z ograniczonym dostępem

ograniczać foldery do określonych użytkowników.

Foldery z ograniczonym dostępem umożliwiają ograniczenie dostępu do folderów do określonych użytkowników. Folder mogą otworzyć i uzyskać do niego dostęp tylko użytkownicy, którzy zostali bezpośrednio dodani do uprawnień folderu. Użytkownicy z dziedziczonym dostępem do udostępnionego folderu na Mojem dysku lub folderu na dysku współdzielonym (poprzez dostęp z folderu nadrzędnego) mogą zobaczyć folder z ograniczeniami na Dysku, ale nie mogą go otworzyć. Ta funkcja lepiej dopasowuje sposób udostępniania elementów na Moim dysku i dyskach współdzielonych, umożliwiając organizowanie folderów z danymi poufnymi obok treści udostępnianych na szerszą skalę.

Foldery z ograniczonym dostępem są dostępne zarówno na Moim dysku, jak i na dyskach współdzielonych. Użytkownicy z rolą owner na Moim dysku oraz z rolą organizer na dyskach współdzielonych zawsze mają dostęp do folderów z ograniczonym dostępem. Aby zmodyfikować listę użytkowników folderu, nie musisz mieć specjalnych uprawnień. Role, które mogą udostępniać foldery, mogą aktualizować listy użytkowników. Więcej informacji o rolach i uprawnieniach znajdziesz w artykule Rolach i uprawnieniach oraz w artykule Omówienie udostępnionych dysków.

Pamiętaj, że chociaż foldery to rodzaj pliku, ograniczony dostęp nie jest dostępny w przypadku plików.

Ustawianie ograniczonego dostępu do folderu

Użytkownicy z bezpośrednimi uprawnieniami do folderu mogą uzyskać dostęp do folderu z ograniczonym dostępem, ale tylko użytkownicy z rolą owner na Moim dysku i rolą organizer na dyskach współdzielonych mogą włączać i wyłączać ograniczony dostęp.

Jeśli dodatkowo użytkownik z rolą writer na Dysku ma pole logiczne writersCanShare w zasobach files ustawione na true, może też włączyć lub wyłączyć tę funkcję.

Aby ograniczyć dostęp do folderu, ustaw w polu logicznym inheritedPermissionsDisabled zasobu files wartość true. Gdy true, dostęp do niego mają tylko użytkownicy z rolą owner, rolą organizer i użytkownicy z bezpośrednimi uprawnieniami do folderu.

Aby ponownie włączyć odziedziczone uprawnienia, ustaw inheritedPermissionsDisabled na false.

Weryfikacja uprawnień do ograniczenia dostępu do folderu

Aby sprawdzić, czy możesz ograniczyć dostęp do folderu, sprawdź wartości logiczne pól capabilities.canDisableInheritedPermissions i capabilities.canEnableInheritedPermissions w zasobie files. Te ustawienia potwierdzają, czy masz uprawnienia do ograniczenia dostępu do folderu za pomocą pola inheritedPermissionsDisabled.

Więcej informacji o capabilities znajdziesz w artykule Informacje o możliwościach plików.

Wyświetlanie listy podfolderów folderu z ograniczonym dostępem

Aby sprawdzić, czy możesz wyświetlić elementy podrzędne folderu, użyj pola wartości logicznej capabilities.canListChildren.

Zwracana wartość jest zawsze false, gdy element nie jest folderem lub gdy dostęp do zawartości folderu został usunięty przez ustawienie wartości inheritedPermissionsDisabled na false.

Jeśli dostęp do zawartości folderu został usunięty, nadal możesz uzyskać dostęp do metadata folderu za pomocą metod files.get() i files.list(). Aby potwierdzić, że dostęp jest ograniczony, sprawdź w treści odpowiedzi, czy element jest folderem z typem MIME application/vnd.google-apps.folder i czy pole capabilities.canListChildren ma wartość false. Jeśli spróbujesz wyświetlić podfoldery takiego folderu, wynik zawsze będzie pusty.

Dostęp do folderu z metadanymi o ograniczonym dostępie

Foldery z ograniczonym dostępem umożliwiają wyświetlanie metadata folderu, jeśli nie masz dostępu do jego zawartości.

Gdy używasz zasobu permissions do określenia dostępu użytkownika, foldery Mój dysk i foldery na dyskach współdzielonych, które przyznają dostęp tylko do metadanych, zawierają w treści odpowiedzi te wartości: inheritedPermissionsDisabled=true i view=metadata. Rola ma zawsze wartość reader. Pole view jest wypełniane tylko w przypadku uprawnień należących do view. Więcej informacji znajdziesz w sekcji Wyświetlenia.

Wszystkie wpisy w polu permissionDetails mają ustawione pole inherited na wartość true, co oznacza, że uprawnienia są dziedziczone i nie przyznano bezpośredniego dostępu do zawartości folderu.

Aby przyznać dostęp do zawartości folderu i metadanych, ustaw pole inheritedPermissionsDisabled na false lub zmień rolę na reader lub wyższą.

Jeśli najpierw ograniczysz uprawnienia, wyłączając dziedziczenie w folderze (inheritedPermissionsDisabled=true), a potem dodasz je bezpośrednio do folderu, wartości w ciele odpowiedzi zmienią się na inheritedPermissionsDisabled=true, a pole view będzie puste. Jeśli folder znajduje się na dysku współdzielonym, lista permissionDetails zawiera pozycję z polem inherited ustawionym na false, aby wskazać, że uprawnienia nie zostały odziedziczone. To uprawnienie zapewnia dostęp do zawartości folderu i metadanych, tak jak każde inne uprawnienie.

Usuwanie folderów z ograniczonym dostępem

Foldery z ograniczonym dostępem możesz usuwać za pomocą metody files.delete() w zasobach files.

Na Moim Dysku tylko właściciel elementu może usunąć hierarchię folderów. Jeśli użytkownik usunie hierarchię z folderami, które mają ograniczony dostęp i należą do innych użytkowników, foldery te zostaną przeniesione na Mój dysk właściciela.

Jeśli użytkownik ma rolę owner, cała hierarchia zostanie usunięta.

Na dyskach współdzielonych użytkownik o roli organizer może usuwać hierarchie, nawet jeśli zawierają one foldery z ograniczonym dostępem. Jeśli rola fileOrganizer usunie hierarchię zawierającą foldery z ograniczonym dostępem, wynik zależy od tego, czy foldery te zostały ponownie dodane jako fileOrganizer. Jeśli tak się stanie, cała hierarchia zostanie usunięta. W przeciwnym razie foldery z ograniczonym dostępem zostaną przeniesione do głównego folderu dysku współdzielonego.

O rozszerzonym dostępie

Wprowadzenie folderów z ograniczonym dostępem rozszerza model dostępu na dyskach współdzielonych na Mój dysk. Po wdrożeniu modelu dostępu posiadanie dostępu do folderu oznacza co najmniej ten sam poziom dostępu do wszystkich elementów w hierarchii folderu. Foldery z ograniczonym dostępem to jedyna opcja, która pozwala ograniczyć dostęp do konkretnego folderu podrzędnego zarówno na moim Dysku, jak i na dyskach współdzielonych. Oznacza to też, że jeśli Twój folder nie ma ograniczonego dostępu, nie możesz już usunąć dostępu odziedziczonego z folderu nadrzędnego. W przeciwnym razie interfejs Drive API zwróci komunikat o błędzie. Aby zdefiniować bardziej szczegółową kontrolę dostępu w hierarchii, możesz ustawić ograniczony dostęp do folderu.

Dostosowywanie się do rozszerzonego dostępu

Aby ułatwić deweloperom dostosowanie się do rozszerzonego dostępu, wprowadziliśmy kilka ulepszeń interfejsu Dysku Google:

  1. Pole permissionDetails[] w zasobie permissions jest teraz wypełniane w przypadku elementów na Moim dysku. Wcześniej pola te były albo nieprzypisane, albo powielane z pola teamDrivePermissionDetails (w odpowiednich przypadkach). Na Moim dysku są wypełnione tylko pola permissionType i inherited.

    Pole permissionDetails[].inherited wskazuje, czy uprawnienie jest dziedziczone z elementu nadrzędnego. Dzięki temu możesz wykryć, czy określone role (np. reader) są dziedziczone z elementu nadrzędnego, a także czy wyższa rola (np. writer) została przypisana bezpośrednio do elementu.

    Podczas wyświetlania uprawnień do elementu pole permissionDetails[] może zawierać wiele wpisów. Jeśli są obecne, w przypadku danego zakresu jest jeden wpis dotyczący uprawnień bezpośrednio w elemencie, a potem wpisy dotyczące odziedziczonych lub członkowskich uprawnień do tego elementu.

  2. Deweloperzy mogą włączyć rozszerzone uprawnienia interfejsu API w sekcji Moje Drive przed wprowadzeniem przyszłych wymogów. Możesz ustawić parametr enforceExpansiveAccess na true, aby przyszłe zmiany dotyczące rozszerzonego dostępu nie wpływały na Twoją aplikację.

    Włączenie tej opcji oznacza, że interfejs API będzie działał tak samo w przypadku elementów na Moim dysku jak w przypadku elementów na dyskach współdzielonych. Na przykład każda próba zawężenia dostępu poniżej roli dziedziczonej kończy się niepowodzeniem, gdy wywołujesz funkcję permissions.update(). Podobnie wywołanie metody permissions.delete() kończy się niepowodzeniem, jeśli uprawnienia są dziedziczone.

Wykrywanie ograniczonego dostępu i zapobieganie mu

Twoja aplikacja może tworzyć ograniczony dostęp (gdy użytkownik ma dostęp do nadrzędnego folderu na Moim dysku, ale nie do pliku w tym folderze) do folderów na Moim dysku, gdy używa metod permissions.update() lub permissions.delete().

Korzystając z tych metod, możesz sprawdzić pola zasobu permissions, aby zobaczyć, w których miejscach prośba może spowodować ograniczenie dostępu, i unikać wysyłania takich próśb. Aby wykryć taką sytuację, użyj pola enforceExpansiveAccess w prośbie.

Jeśli aplikacja ma już ograniczony dostęp do Twoich folderów, wykonaj te czynności:

  1. Przejdź przez hierarchię folderów, aby usunąć ograniczony dostęp. Zamiast tego ustaw ograniczony dostęp do folderu.

  2. Jeśli element, który chcesz udostępnić, to plik, możesz utworzyć folder pośredni, ustawić w nim ograniczony dostęp i przenieść plik do nowego folderu.

  3. Jeśli nie chcesz używać folderów z ograniczonym dostępem, ale musisz usunąć niektóre uprawnienia, możesz przenieść plik do folderu prywatnego (np. do folderu głównego Mojego dysku). Następnie możesz utworzyć skrót do pierwotnej lokalizacji elementu, aby użytkownicy mogli z niego korzystać.