إدارة المجلدات ذات الوصول المحدود والموسّع

يمتلك المستخدم مجلدًا في "ملفاتي". قد يحتوي المجلد على عدة مستخدمين لديهم إذن الوصول إلى ملفات مختلفة. يعني نموذج الوصول المقيد هذا أنّه قد تظهر للمستخدمين المختلفين قوائم مختلفة بالعناصر ضمن المجلد نفسه. يُمنح المستخدم "إذن وصول مقيّد" إذا كان لديه إذن الوصول إلى المجلد الرئيسي في "ملفاتي" ولكن ليس إلى عنصر داخل هذا المجلد. ويؤدي ذلك إلى صعوبة معرفة المستخدمين الذين لديهم إذن بالوصول إلى البيانات ضمن التسلسل الهرمي.

في المقابل، تكون مساحة التخزين السحابي المشتركة هي مالكة ملفاتها. تتضمّن مساحات التخزين السحابي المشتركة نموذجًا شاملاً، لذا تتضمّن كل مساحة التخزين السحابي المشتركة قائمة العناصر نفسها ضمن المجلد نفسه.

يؤدي طرح المجلدات ذات إذن الوصول المحدود إلى تكرار نموذج الوصول الواسع النطاق من مساحات التخزين السحابي المشتركة إلى "ملفاتي". بفضل هذا التغيير، أصبحت المجلدات ذات الوصول المحدود هي الاستثناء الوحيد الذي يسمح بحظر الوصول إلى مجلد فرعي معيّن في كلّ من "ملفاتي" ومساحات التخزين السحابي المشتركة.

يوضّح هذا الدليل كيفية إدارة المجلدات ذات إذن الوصول المحدود وإذن الوصول الواسع في Google Drive.

لمحة عن المجلدات ذات إذن الوصول المحدود

حصر إمكانية الوصول إلى المجلدات على مستخدمين معيّنين

تتيح لك المجلدات ذات الوصول المحدود حصر الوصول إلى المجلدات بمستخدمين معيّنين. لا يمكن فتح المجلد والوصول إلى محتواه إلا للمستخدمين الذين تضيفهم مباشرةً إلى أذونات المجلد. يمكن للمستخدمين الذين لديهم إذن وصول مكتسَب إلى المجلد المشترَك في "ملفاتي" أو مجلد مساحة التخزين السحابي المشتركة (من خلال إذن الوصول من مجلد رئيسي) الاطّلاع على المجلد المحظور في Drive، ولكن لا يمكنهم فتحه. تساعد هذه الميزة في مواءمة سلوك مشاركة العناصر في كل من "ملفاتي" ومساحات التخزين السحابي المشتركة، ما يتيح لك تنظيم المجلدات التي تتضمّن محتوًى حسّاسًا إلى جانب المحتوى الذي تتم مشاركته على نطاق أوسع.

تتوفّر المجلدات ذات الوصول المقيد في كلّ من "ملفاتي" ومساحات التخزين السحابي المشتركة. يمكن للمستخدمين الذين لديهم دور owner في "ملفاتي" ودور organizer في مساحات التخزين السحابي المشتركة الوصول دائمًا إلى المجلدات ذات إذن الوصول المحدود. لتعديل قائمة مستخدمي المجلد، لا يلزم توفّر أي أذونات خاصة. يمكن للأدوار التي يمكنها مشاركة المجلدات تعديل قوائم الأعضاء. لمزيد من المعلومات حول الأدوار والأذونات، يُرجى الاطّلاع على الأدوار والأذونات ونظرة عامة على مساحات التخزين المشتركة.

يُرجى العِلم أنّه على الرغم من أنّ المجلدات هي نوع من الملفات، لا تتوفّر أذونات الوصول المحدود للملفات.

ضبط إذن وصول محدود إلى مجلد

على الرغم من أنّه يمكن للمستخدمين الذين لديهم أذونات مباشرة للمجلد الوصول إلى مجلد ذي إذن وصول محدود، لا يمكن سوى للمستخدمين الذين لديهم دور owner في "ملفاتي" ودور organizer في مساحات التخزين السحابي المشتركة تفعيل إذن الوصول المحدود أو إيقافه.

بالإضافة إلى ذلك، إذا كان لدى مستخدم دور writer في "ملفاتي" وكان حقل writersCanShare المنطقي في مورد files مضبوطًا على true، يمكنه أيضًا تفعيل الميزة أو إيقافها.

لتقييد الوصول إلى مجلد، اضبط الحقل المنطقي inheritedPermissionsDisabled في المرجع files على true. عندما تكون القيمة true، لا يمكن الوصول إلى المجلد إلا للمستخدمين الذين لديهم دور owner أو دور organizer أو أذونات مباشرة للمجلد.

لإعادة تفعيل الأذونات المكتسبة، اضبط inheritedPermissionsDisabled على false.

التحقّق من الإذن بتقييد الوصول إلى مجلد

للتحقّق مما إذا كان بإمكانك تقييد الوصول إلى مجلد أم لا، راجِع القيم المنطقية للحقلَين capabilities.canDisableInheritedPermissions وcapabilities.canEnableInheritedPermissions في مرجع files. تؤكّد هذه الإعدادات ما إذا كان لديك إذن بتقييد الوصول إلى مجلد من خلال الحقل inheritedPermissionsDisabled.

لمزيد من المعلومات حول capabilities، يُرجى الاطّلاع على التعرّف على إمكانات الملفات.

عرض العناصر الفرعية لمجلد ذي إذن وصول محدود

للتحقّق مما إذا كان بإمكانك إدراج العناصر الفرعية لمجلد، استخدِم الحقل المنطقي capabilities.canListChildren.

تكون القيمة المعروضة دائمًا false عندما لا يكون العنصر مجلدًا أو إذا تمت إزالة إذن وصول مقدّم الطلب إلى محتوى المجلد من خلال ضبط inheritedPermissionsDisabled على 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.delete() في مورد files.

في "ملفاتي"، لا يمكن لأحد حذف التسلسل الهرمي للمجلدات إلا مالك العنصر. إذا حذف مستخدم تسلسلاً هرميًا يتضمّن مجلدات ذات إذن وصول محدود ومملوكة لمستخدمين آخرين، يتم نقل هذه المجلدات إلى القسم "ملفاتي" الخاص بالمالك.

إذا كان لدى المستخدم دور owner، سيتم حذف التدرّج الهرمي بأكمله.

في مساحات التخزين السحابي المشتركة، يمكن للدور organizer حذف التسلسلات الهرمية حتى إذا كانت تحتوي على مجلدات ذات إذن وصول محدود. إذا حذف دور fileOrganizer تسلسلاً هرميًا يتضمّن مجلدات ذات إذن وصول محدود، ستختلف النتيجة حسب ما إذا تمت إعادة إضافته كدور fileOrganizer إلى المجلدات ذات إذن الوصول المحدود. وفي حال كانا كذلك، سيتم حذف التسلسل الهرمي بأكمله. إذا لم يكن الأمر كذلك، يتم نقل المجلدات ذات إذن الوصول المحدود إلى المجلد الجذر في مساحة التخزين السحابي المشتركة.

لمحة عن الوصول الموسّع

يؤدي طرح المجلدات ذات إذن الوصول المحدود إلى توسيع نطاق نموذج الوصول الشامل من مساحات التخزين السحابي المشتركة إلى "ملفاتي". بعد طرح نموذج الوصول، يعني توفّر إذن الوصول إلى مجلد أنّ لديك على الأقل مستوى الوصول نفسه إلى كل المحتوى في التدرّج الهرمي لهذا المجلد. المجلدات ذات إذن الوصول المحدود هي الاستثناء الوحيد الذي يسمح بتقييد الوصول إلى مجلد فرعي معيّن في كلّ من "ملفاتي" ومساحات التخزين السحابي المشتركة. يعني هذا أيضًا أنّه ما لم يكن مجلدك بأذونات وصول محدودة، لن تتمكّن بعد الآن من إزالة إذن الوصول الموروث من المجلد الرئيسي. ويؤدي ذلك إلى أن تعرض واجهة برمجة التطبيقات Drive API استجابة خطأ. لتحديد عناصر تحكّم أكثر دقة في الوصول ضمن التسلسل الهرمي، يمكنك ضبط إذن وصول محدود على المجلد.

التكيّف مع الوصول الموسّع

لتسهيل عملية التكيّف مع نموذج الوصول الموسَّع على المطوّرين، تم إجراء العديد من التحسينات على Google Drive API:

  1. تم الآن ملء الحقل permissionDetails[] في المرجع permissions بالعناصر الموجودة في "ملفاتي". في السابق، كانت الحقول إما غير مضبوطة أو مكرّرة من الحقل teamDrivePermissionDetails عند الاقتضاء. يتم ملء الحقلَين permissionType وinherited فقط في "ملفاتي".

    يشير الحقل permissionDetails[].inherited إلى ما إذا كان الإذن مكتسبًا من العنصر الرئيسي. تتيح لك هذه السمة رصد ما إذا كانت أدوار معيّنة (مثل reader) موروثة من العنصر الرئيسي، وما إذا كان دور أعلى (مثل writer) قد تم منحه للعنصر مباشرةً.

    عند عرض أذونات عنصر ما، قد يحتوي الحقل permissionDetails[] على إدخالات متعدّدة. في حال توفّره، سيكون هناك إدخال واحد للإذن مباشرةً على العنصر لهذا النطاق، ثم إدخالات للأذونات الموروثة أو أذونات الأعضاء على العنصر.

  2. يمكن للمطوّرين الموافقة على سلوك واجهة برمجة التطبيقات للوصول الموسّع في "ملفي" قبل أي إجراءات تنفيذية إلزامية مستقبلية. يمكنك ضبط مَعلمة الطلب enforceExpansiveAccess على true لكي لا تؤثر التغييرات المستقبلية على الوصول الموسّع في تطبيقك.

    يعني الاشتراك الآن أنّ واجهة برمجة التطبيقات ستعمل بالطريقة نفسها مع العناصر في "ملفاتي" كما تعمل حاليًا مع العناصر في مساحات التخزين السحابي المشتركة. على سبيل المثال، أي محاولة لتقييد الوصول إلى مستوى أقل من الدور الموروث ستفشل عند استدعاء permissions.update(). وبالمثل، يتعذّر تنفيذ طلب permissions.delete() إذا كان الإذن مكتسَبًا.

رصد ومنع الوصول المحظور

قد ينشئ تطبيقك إذن وصول محدودًا (حيث يمكن للمستخدم الوصول إلى المجلد الرئيسي "ملفاتي" ولكن ليس إلى ملف داخل هذا المجلد) في مجلدات "ملفاتي" عند استخدام الطريقتَين permissions.update() أو permissions.delete().

عند استخدام هذه الطرق، يمكنك مراجعة الحقول في مورد permissions لمعرفة الحالات التي قد يؤدي فيها الطلب إلى إنشاء إذن وصول مقيّد وتجنُّب إرسال مثل هذه الطلبات. لرصد هذه الحالة، استخدِم الحقل enforceExpansiveAccess في طلبك.

بالإضافة إلى ذلك، إذا كان تطبيقك قد أنشأ إذن وصول محدودًا إلى مجلداتك، يمكنك اتّخاذ الخطوات التالية:

  1. تصفَّح تسلسل المجلدات الهرمي لإزالة إذن الوصول المحظور. بدلاً من ذلك، عليك ضبط إذن وصول محدود إلى المجلد.

  2. إذا كان العنصر الذي تحاول إلغاء مشاركته هو ملف، يمكنك إنشاء مجلد وسيط وتعيين أذونات وصول محدودة إليه ونقل الملف إلى المجلد الجديد.

  3. إذا كنت لا تريد استخدام المجلدات ذات الوصول المحدود ولكن عليك إزالة بعض أذونات الوصول، يمكنك نقل الملف إلى مجلد خاص (مثل مجلد الجذر في "ملفاتي"). يمكنك بعد ذلك إنشاء اختصار إلى الموقع الأصلي للعنصر ليتمكّن المستخدمون من مواصلة استخدامه.