תיקייה 'האחסון שלי' נמצאת בבעלות משתמש. התיקייה עשויה להכיל כמה משתמשים עם גישה לקבצים שונים. מודל הגישה המוגבל הזה מאפשר למשתמשים שונים לראות רשימות שונות של פריטים באותה תיקייה. משתמש שיש לו גישה לתיקיית ההורה 'האחסון שלי', אבל לא לאובייקט בתוך התיקייה הזו, מוגדר כ'גישה מוגבלת'. המצב הזה יוצר מצב שבו קשה לדעת למי יש גישה בהיררכיה.
לעומת זאת, הקבצים באחסון השיתופי הם בבעלות האחסון השיתופי. לתיקיות האחסון השיתופי יש מודל רחב, כך שלכל משתמש יש את אותה רשימת פריטים באותה תיקייה.
ההשקה של תיקיות עם גישה מוגבלת מאפשרת לכם להשתמש במודל הגישה המקיף של האחסון השיתופי גם בתיקיית 'האחסון שלי'. בעקבות השינוי הזה, תיקיות עם גישה מוגבלת הן היוצאות מן הכלל, ומאפשרות להגביל את הגישה לתיקיית משנה ספציפית גם בתיקיית 'האחסון שלי' וגם באחסון השיתופי.
במדריך הזה נסביר איך לנהל תיקיות עם גישה מוגבלת וגישה מלאה ב-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
.
אם הגישה שלכם לתוכן של התיקייה הוסרה, עדיין תוכלו לגשת לmetadata של התיקייה באמצעות השיטות files.get()
ו-files.list()
. כדי לוודא שהגישה מוגבלת, בודקים את גוף התשובה כדי לראות אם הפריט הוא תיקייה עם סוג MIME application/vnd.google-apps.folder
והשדה capabilities.canListChildren
מוגדר כ-false. אם מנסים לרשום את הצאצאים של תיקייה כזו, התוצאה תמיד ריקה.
גישה לתיקייה עם מטא-נתונים של גישה מוגבלת
תיקיות עם גישה מוגבלת מאפשרות לכם להציג את metadata של התיקייה, גם אם אין לכם גישה לתוכן שלה.
כשמשתמשים במשאב 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:
השדה
permissionDetails[]
במשאבpermissions
מאוכלס עכשיו בפריטים בתיקייה 'האחסון שלי'. בעבר, השדות לא היו מוגדרים או שהם שוחזרו מהשדהteamDrivePermissionDetails
במקרים הרלוונטיים. רק השדותpermissionType
ו-inherited
בתיקייה 'האחסון שלי' מאוכלסים.השדה
permissionDetails[].inherited
מציין אם ההרשאה הועברה בירושה מהפריט ההורה. הוא מאפשר לזהות אם תפקידים מסוימים (כמוreader
) עוברים בירושה מההורה, ואם תפקיד ברמה גבוהה יותר (כמוwriter
) הוענק ישירות לפריט.כשמציגים את ההרשאות של פריט, השדה
permissionDetails[]
יכול להכיל כמה רשומות. אם ההרשאה קיימת, תופיע רשומה אחת של ההרשאה ישירות בפריט ברמת ההיקף הזו, ואז רשומות של ההרשאות שעברו בירושה או של ההרשאות של חברי הקבוצה בפריט.מפתחים יכולים להביע הסכמה לשימוש נרחב ב-API של גישה ב'הדף שלי ב-Drive' לפני שהאכיפה הזו תהיה חובה. אפשר להגדיר את הפרמטר של הבקשה
enforceExpansiveAccess
לערךtrue
כדי ששינויים עתידיים בגישה המורחבת לא ישפיעו על האפליקציה.אם תבחרו להביע הסכמה עכשיו, ה-API יפעל באותו אופן לגבי פריטים בתיקיית 'האחסון שלי', כפי שהוא פועל כבר לגבי פריטים באחסון השיתופי. לדוגמה, כל ניסיון להגביל את הגישה מתחת לתפקיד שעובר בירושה נכשל בקריאה ל-
permissions.update()
. באופן דומה, קריאה ל-permissions.delete()
תיכשל אם ההרשאה עוברת בירושה.
זיהוי ומניעה של גישה מוגבלת
יכול להיות שהאפליקציה יוצרת גישה מוגבלת (כאשר למשתמש יש גישה לתיקיית ההורה 'האחסון שלי' אבל לא לקובץ בתוך התיקייה הזו) בתיקיות 'האחסון שלי' כשמשתמשים בשיטות permissions.update()
או permissions.delete()
.
כשמשתמשים בשיטות האלה, אפשר לבדוק את השדות במשאב permissions
כדי לראות איפה בקשה עשויה ליצור גישה מוגבלת, וכך להימנע משליחת בקשות כאלה. כדי לזהות את המצב הזה, צריך להשתמש בשדה enforceExpansiveAccess
בבקשה.
בנוסף, אם האפליקציה כבר יצרה גישה מוגבלת לתיקיות שלכם, תוכלו לבצע את הפעולות הבאות:
עוברים על היררכיית התיקיות כדי להסיר את הגישה המוגבלת. במקום זאת, צריך להגדיר גישה מוגבלת לתיקייה.
אם הפריט שאתם מנסים לבטל את השיתוף שלו הוא קובץ, תוכלו ליצור תיקייה ביניים, להגדיר לה גישה מוגבלת ולהעביר את הקובץ לתיקייה החדשה.
אם אתם לא רוצים להשתמש בתיקיות עם גישה מוגבלת אבל אתם חייבים להסיר גישה מסוימת, תוכלו להעביר את הקובץ לתיקייה פרטית (למשל, התיקייה ברמה הבסיסית (root) 'האחסון שלי'). לאחר מכן תוכלו ליצור קיצור דרך למיקום המקורי של הפריט כדי שהמשתמשים עדיין יוכלו להשתמש בו.