Sınırlı ve geniş erişim uygulanan klasörleri yönetme

Kullanıcının Drive'ım klasörü varsa Klasör, farklı dosyalara erişimi olan birden fazla kullanıcı içerebilir. Bu kısıtlayıcı erişim modeli, farklı kullanıcıların aynı klasördeki farklı öğe listelerini görebileceği anlamına gelir. Üst Drive'ım klasörüne erişimi olan ancak bu klasördeki bir öğeye erişimi olmayan kullanıcılar "kısıtlanmış erişime" sahiptir. Bu durum, hiyerarşide kimlerin erişimi olduğunu bilmenin zor olduğu bir durum oluşturur.

Buna karşılık, ortak Drive dosyaları ortak Drive'a aittir. Paylaşılan Drive'lar geniş bir modele sahiptir. Bu sayede her kullanıcı aynı klasördeki öğelerin aynı listesine sahiptir.

Sınırlı erişim uygulanan klasörler, ortak Drive'lardan Drive'ım'a kadar geniş erişim modelini yansıtır. Bu değişiklikle birlikte, sınırlı erişim uygulanan klasörler hem Drive'ım hem de ortak Drive'larda belirli bir alt klasöre erişimi kısıtlamaya olanak tanıyan tek istisna haline geldi.

Bu kılavuzda, Google Drive'da sınırlı erişim ve geniş erişim uygulanan klasörleri nasıl yönetebileceğiniz açıklanmaktadır.

Sınırlı erişim uygulanan klasörler hakkında

Klasörleri belirli kullanıcılarla kısıtlayın.

Sınırlı erişim uygulanan klasörler, klasörleri belirli kullanıcılarla kısıtlamanıza olanak tanır. Klasörü yalnızca doğrudan klasörün izinlerine eklediğiniz kullanıcılar açabilir ve içeriğine erişebilir. Paylaşılan Drive'ım klasörüne veya ortak Drive klasörüne devralınmış erişimi olan kullanıcılar (üst klasörden erişim yoluyla), Drive'da kısıtlanmış klasörü görebilir ancak açamaz. Bu özellik, hem Drive'ım hem de ortak Drive'lardaki öğelerin paylaşım davranışını daha iyi uyumlu hale getirir. Böylece, geniş kapsamlı olarak paylaşılan içeriklerin yanı sıra hassas içerik barındıran klasörleri de düzenleyebilirsiniz.

Sınırlı erişim uygulanan klasörler hem Drive'ımda hem de ortak Drive'larda kullanılabilir. Drive'ım'daki owner rolü ve ortak Drive'lardaki organizer rolü, sınırlı erişim uygulanan klasörlere her zaman erişebilir. Klasör kullanıcılarının listesini değiştirmek için özel izin gerekmez. Klasör paylaşabilen roller, üye listelerini güncelleyebilir. Roller ve izinler hakkında daha fazla bilgi edinmek için Roller ve izinler ve Paylaşılan sürücülere genel bakış başlıklı makaleleri inceleyin.

Klasörler bir dosya türü olsa da dosyalarda sınırlı erişim kullanılamayacağını unutmayın.

Klasörlerde sınırlı erişim ayarlama

Doğrudan klasör izinlerine sahip kullanıcılar sınırlı erişime sahip bir klasöre erişebilir ancak sınırlı erişimi etkinleştirip devre dışı bırakabilecek tek kullanıcılar Drive'ım'daki owner rolü ve ortak Drive'lardaki organizer rolüdür.

Ayrıca, Drive'ım'da writer rolüne sahip bir kullanıcı, files kaynağındaki writersCanShare boole alanını true olarak ayarladıysa bu özelliği etkinleştirebilir veya devre dışı bırakabilir.

Bir klasöre erişimi sınırlamak için files kaynağındaki doğru/yanlış inheritedPermissionsDisabled alanını true olarak ayarlayın. true olduğunda yalnızca owner rolü, organizer rolü ve doğrudan klasör izinlerine sahip kullanıcılar klasöre erişebilir.

Devralınan izinleri tekrar etkinleştirmek için inheritedPermissionsDisabledfalse olarak ayarlayın.

Klasör erişimini sınırlama iznini doğrulama

Bir klasöre erişimi sınırlayıp sınırlayamayacağınızı kontrol etmek için files kaynağındaki capabilities.canDisableInheritedPermissions ve capabilities.canEnableInheritedPermissions alanlarının boole değerlerini inceleyin. Bu ayarlar, inheritedPermissionsDisabled alanı aracılığıyla bir klasöre erişimi sınırlama izniniz olup olmadığını onaylar.

capabilities hakkında daha fazla bilgi için Dosya özelliklerini anlama başlıklı makaleyi inceleyin.

Sınırlı erişim uygulanan bir klasörün alt klasörlerini listeleme

Bir klasörün alt öğelerini listeleyip listeleyemeyeceğinizi kontrol etmek için capabilities.canListChildren boole alanını kullanın.

Öğe bir klasör değilse veya istek sahibinin klasör içeriğine erişimi inheritedPermissionsDisabled parametresi false olarak ayarlanarak kaldırıldıysa döndürülen değer her zaman false olur.

Klasörün içeriğine erişiminiz kaldırılmış olsa bile files.get() ve files.list() yöntemleriyle klasör metadata erişebilirsiniz. Erişimin sınırlı olduğunu onaylamak için yanıt gövdesini kontrol ederek öğenin MIME türü application/vnd.google-apps.folder olan bir klasör olup olmadığını ve capabilities.canListChildren alanının false olarak ayarlanıp ayarlanmadığını kontrol edin. Bu tür bir klasörün alt öğelerini listelemeyi denerseniz sonuç her zaman boş olur.

Sınırlı erişim meta verilerine sahip klasöre erişim

Sınırlı erişime sahip klasörler, klasör içeriğine erişiminiz yoksa klasör metadata görüntülemenize olanak tanır.

Kullanıcının erişimini belirlemek için permissions kaynağı kullanıldığında, yalnızca meta verilere erişim izni veren hem Drive'ım hem de ortak Drive klasörleri, yanıt gövdesinde şu değerleri içerir: inheritedPermissionsDisabled=true ve view=metadata. Rol her zaman reader olarak ayarlanır. view alanı yalnızca bir view'ye ait izinler için doldurulur. Daha fazla bilgi için Görüntüleme sayısı başlıklı makaleyi inceleyin.

permissionDetails alanındaki tüm girişlerde, iznin devralındığını ve klasör içeriğine doğrudan erişim izni verilmediğini belirtmek için inherited alanı true olarak ayarlanır.

Hem klasör içeriğine hem de meta verilere erişim izni vermek için inheritedPermissionsDisabled alanını false olarak ayarlayın veya rolü reader veya daha üst bir role güncelleyin.

Son olarak, bir izin önce bir klasördeki devralma özelliği devre dışı bırakılarak (inheritedPermissionsDisabled=true) sınırlandırılır ve ardından izin doğrudan klasöre tekrar eklenirse yanıt gövdesinde view alanı ayarlanmamış olarak inheritedPermissionsDisabled=true değerleri olur. Klasör ortak Drive'daysa permissionDetails listesinde, iznin devralınmadığını belirtmek için inherited alanının false olarak ayarlandığı bir giriş bulunur. Bu izin, diğer izinler gibi hem klasör içeriğine hem de meta verilere erişim sağlar.

Sınırlı erişim uygulanan klasörleri silme

files kaynağındaki files.delete() yöntemini kullanarak sınırlı erişim uygulanan klasörleri silebilirsiniz.

Drive'ım bölümünde, klasör hiyerarşisi yalnızca öğenin sahibi tarafından silinebilir. Kullanıcılar sınırlı erişimi olan ve başkalarına ait klasörler içeren bir hiyerarşiyi silerse bu klasörler, sahibinin Drive'ım bölümüne taşınır.

Kullanıcının owner rolü varsa hiyerarşinin tamamı silinir.

Ortak Drive'larda organizer rolü, sınırlı erişim uygulanan klasörler içerse bile hiyerarşileri silebilir. fileOrganizer rolü, sınırlı erişimi olan klasörler içeren bir hiyerarşiyi silerse sonuç, sınırlı erişimi olan klasörlere fileOrganizer olarak tekrar eklenip eklenmediklerine bağlıdır. Bu durumda hiyerarşinin tamamı silinir. Aksi takdirde, sınırlı erişime sahip klasörler ortak Drive'ın kök klasörüne taşınır.

Geniş kapsamlı erişim hakkında

Sınırlı erişim uygulanan klasörlerin kullanıma sunulması, ortak Drive'lardan Drive'ım'a kadar geniş erişim modelini genişletir. Erişim modeli kullanıma sunulduktan sonra bir klasöre erişmek, o klasör hiyerarşisindeki her şeye en azından aynı erişim düzeyine sahip olmak anlamına gelir. Sınırlı erişim uygulanan klasörler, hem Drive'ım hem de ortak Drive'larda belirli bir alt klasöre erişimi kısıtlamanıza olanak tanıyan tek istisnadır. Bu durum, klasörünüzün erişimi sınırlı olmadığı sürece üst klasörden devralınan erişimi artık kaldıramayacağınız anlamına da gelir. Bu durumda Drive API bir hata yanıtı döndürür. Bir hiyerarşi içinde daha ayrıntılı erişim denetimi tanımlamak için klasörde sınırlı erişim ayarlayabilirsiniz.

Geniş kapsamlı erişime uyum sağlama

Geliştiricilerin geniş kapsamlı erişime uyum sağlamasını kolaylaştırmak için Google Drive API'de çeşitli iyileştirmeler yapıldı:

  1. permissions kaynağındaki permissionDetails[] alanı artık Drive'ım'daki öğeler için dolduruluyor. Daha önce alanlar, uygun olduğunda teamDrivePermissionDetails alanından ayarlanmamış veya çoğaltılmıştı. Yalnızca Drive'ım bölümündeki permissionType ve inherited alanları doldurulur.

    permissionDetails[].inherited alanı, bir iznin öğenin üst öğesinden alınıp alınmadığını belirtir. Belirli rollerin (ör. reader) üst öğeden devralınıp devralınmadığını ve öğeye doğrudan daha üst bir rolün (ör. writer) atanıp atanmadığını algılamanıza olanak tanır.

    Bir öğenin izinlerini görüntülerken permissionDetails[] alanı birden fazla giriş içerebilir. Varsa doğrudan ilgili kapsamdaki öğede izin için bir giriş ve ardından öğede devralınan veya üye izinleri için girişler bulunur.

  2. Geliştiriciler, gelecekte zorunlu yaptırım uygulanmadan önce Drive'da geniş erişim API davranışını etkinleştirebilir. Geniş kapsamlı erişimde yapılacak gelecekteki değişikliklerin uygulamanızı etkilememesi için enforceExpansiveAccess istek parametresini true olarak ayarlayabilirsiniz.

    Bu özelliği etkinleştirmek, API'nin Drive'ım'daki öğeler için ortak Drive'lardaki öğeler ile aynı şekilde çalışacağı anlamına gelir. Örneğin, permissions.update() çağrılırken devralınan rolün altındaki erişimi kısıtlama girişimleri başarısız olur. Benzer şekilde, izin devralındıysa permissions.delete() çağrısı başarısız olur.

Kısıtlanmış erişimi tespit etme ve önleme

Uygulamanız, permissions.update() veya permissions.delete() yöntemlerini kullanırken Drive'ım klasörlerinizde kısıtlanmış erişim (kullanıcı, üst Drive'ım klasörüne erişebilir ancak bu klasördeki bir dosyaya erişemez) oluşturabilir.

Bu yöntemleri kullanırken, bir isteğin kısıtlanmış erişim oluşturabileceği yerleri görmek ve bu tür istekler göndermekten kaçınmak için permissionskaynağındaki alanları inceleyebilirsiniz. Bu durumu tespit etmek için isteğinizde enforceExpansiveAccess alanını kullanın.

Ayrıca, uygulamanız klasörlerinizde zaten kısıtlanmış erişim oluşturduysa aşağıdaki adımları uygulayabilirsiniz:

  1. Kısıtlanmış erişimi kaldırmak için klasör hiyerarşisini gezin. Bunun yerine sınırlı klasör erişimi ayarlamanız gerekir.

  2. Paylaşımını iptal etmeye çalıştığınız öğe bir dosyaysa ara bir klasör oluşturabilir, bu klasöre sınırlı erişim ayarlayabilir ve dosyayı yeni klasörün içine taşıyabilirsiniz.

  3. Sınırlı erişim klasörleri kullanmak istemiyorsanız ancak bazı erişimleri kaldırmanız gerekiyorsa dosyayı gizli bir klasöre (ör. Drive'ım kök klasörü) taşıyabilirsiniz. Ardından, kullanıcıların kullanmaya devam edebilmesi için öğenin orijinal konumuna bir kısayol oluşturabilirsiniz.