フォルダにアクセスできるすべてのユーザーは、そのフォルダ内のすべてのアイテムにもアクセスできます。これにより、階層内のアイテムにアクセスできるユーザーを簡単に把握できます。これは、アクセス制限のないと呼ばれます。このアクセス動作は、マイドライブと共有ドライブの両方に存在します。
アクセスが制限されているフォルダが導入された後、マイドライブと共有ドライブの両方で特定のサブフォルダへのアクセスを制限できる唯一の例外となりました。
このドキュメントでは、Google ドライブでアクセスが制限されているフォルダとアクセス制限のないフォルダを管理する方法について説明します。
アクセス制限付きのフォルダについて
アクセス制限付きのフォルダを使用すると、フォルダを特定のユーザーに制限できます。フォルダを開いてコンテンツにアクセスできるのは、フォルダの権限に直接追加したユーザーのみです。共有マイドライブ フォルダまたは共有ドライブ フォルダへのアクセス権を継承したユーザー(親フォルダからのアクセス権を介して)は、ドライブ内の制限されているフォルダを表示できますが、開くことはできません。この機能により、マイドライブと共有ドライブの両方でアイテムの共有動作がより適切に調整され、機密情報を含むフォルダを、より広範に共有されるコンテンツとともに整理できるようになります。
アクセスが制限されているフォルダは、マイドライブと共有ドライブの両方で使用できます。マイドライブの owner の役割と共有ドライブの organizer の役割は、アクセス制限のあるフォルダに常にアクセスできます。フォルダ ユーザーのリストを変更するために、特別な権限は必要ありません。フォルダを共有できるロールは、メンバー リストを更新できます。ロールと権限の詳細については、ロールと権限と共有ドライブの概要をご覧ください。
フォルダはファイルの一種ですが、ファイルに対してアクセス制限は使用できません。
フォルダの制限付きアクセスを設定する
フォルダの権限が直接付与されているユーザーは、アクセスが制限されているフォルダにアクセスできますが、アクセス制限を有効または無効にできるのは、マイドライブの owner ロールと共有ドライブの organizer ロールのみです。
また、マイドライブで writer ロールを持つユーザーが、files リソースの writersCanShare ブール値フィールドを true に設定している場合、この機能をオンまたはオフにすることもできます。
フォルダへのアクセスを制限するには、files リソースのブール値 inheritedPermissionsDisabled フィールドを true に設定します。true の場合、owner ロール、organizer ロール、フォルダに対する直接的な権限を持つユーザーのみがアクセスできます。
継承された権限を再度有効にするには、inheritedPermissionsDisabled を false に設定します。
フォルダへのアクセスを制限する権限を確認する
フォルダへのアクセスを制限できるかどうかを確認するには、files リソースの capabilities.canDisableInheritedPermissions フィールドと capabilities.canEnableInheritedPermissions フィールドのブール値を調べます。これらの設定は、inheritedPermissionsDisabled フィールドを介してフォルダへのアクセスを制限する権限があるかどうかを確認します。
capabilities の詳細については、ファイルの機能についてをご覧ください。
アクセス制限付きのフォルダの子を取得する
フォルダの子を一覧表示できるかどうかを確認するには、capabilities.canListChildren ブール値フィールドを使用します。
アイテムがフォルダでない場合、または inheritedPermissionsDisabled を false に設定してフォルダのコンテンツへのリクエスト元のアクセス権が削除された場合、戻り値は常に false になります。
フォルダのコンテンツへのアクセス権が削除された場合でも、files.get() メソッドと files.list() メソッドを使用して、フォルダのメタデータにアクセスできます。アクセスが制限されていることを確認するには、レスポンス本文を調べて、アイテムが MIME タイプ application/vnd.google-apps.folder のフォルダであり、capabilities.canListChildren フィールドが false に設定されているかどうかを確認します。このようなフォルダの子を一覧表示しようとすると、結果は常に空になります。
アクセス制限付きのフォルダのメタデータにアクセスする
アクセス制限付きのフォルダでは、フォルダのコンテンツにアクセスできない場合でも、フォルダのメタデータを表示できます。
permissions リソースを使用してユーザーのアクセス権を判断する場合、メタデータへのアクセス権のみを付与するマイドライブと共有ドライブのフォルダの両方で、レスポンス本文に inheritedPermissionsDisabled=true と view=metadata の値が含まれます。ロールは常に reader に設定されます。view フィールドは、view に属する権限に対してのみ入力されます。詳細については、ビューをご覧ください。
permissionDetails フィールドのすべてのエントリで、inherited フィールドが true に設定されています。これは、権限が継承され、フォルダのコンテンツへの直接アクセス権が付与されていないことを示します。
フォルダのコンテンツとメタデータの両方へのアクセス権を付与するには、inheritedPermissionsDisabled フィールドを false に設定するか、ロールを reader 以上に更新します。
最後に、フォルダの継承をオフにして(inheritedPermissionsDisabled=true)権限が最初に制限され、その後、権限がフォルダに直接追加された場合、レスポンス本文の値は inheritedPermissionsDisabled=true になり、view フィールドは設定されません。フォルダが共有ドライブにある場合、permissionDetails リストには inherited フィールドが false に設定されたエントリがあり、権限が継承されていないことを示します。この権限は、他の権限と同様に、フォルダのコンテンツとメタデータの両方へのアクセスを許可します。
アクセス制限付きのフォルダを削除する
アクセス制限付きのフォルダは、files リソースの files.delete() メソッドを使用して削除できます。
マイドライブ内のフォルダ階層を削除できるのは、そのアイテムのオーナーのみです。アクセス制限付きのフォルダを含む階層を、そのフォルダのオーナー以外のユーザーが削除した場合、それらのフォルダはオーナーのマイドライブに移動します。
ユーザーに owner ロールが付与されている場合、階層全体が削除されます。
共有ドライブでは、organizer ロールはアクセス制限付きのフォルダを含む階層を削除できます。fileOrganizer ロールがアクセス制限付きのフォルダを含む階層を削除した場合、アクセス制限付きのフォルダで fileOrganizer として追加されたかどうかによって結果が異なります。追加された場合は、階層全体が削除されます。追加されていない場合は、アクセス制限付きのフォルダが共有ドライブのルートフォルダに移動します。