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
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:
Pole
permissionDetails[]
w zasobiepermissions
jest teraz wypełniane w przypadku elementów na Moim dysku. Wcześniej pola te były albo nieprzypisane, albo powielane z polateamDrivePermissionDetails
(w odpowiednich przypadkach). Na Moim dysku są wypełnione tylko polapermissionType
iinherited
.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.Deweloperzy mogą włączyć rozszerzone uprawnienia interfejsu API w sekcji Moje Drive przed wprowadzeniem przyszłych wymogów. Możesz ustawić parametr
enforceExpansiveAccess
natrue
, 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 metodypermissions.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:
Przejdź przez hierarchię folderów, aby usunąć ograniczony dostęp. Zamiast tego ustaw ograniczony dostęp do folderu.
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.
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ć.
Powiązane artykuły
- Udostępnianie plików, folderów i dysków
- Jak działa dostęp do plików na dyskach współdzielonych
- Więcej informacji o folderach z ograniczonym dostępem