לכל קובץ, תיקייה ואחסון שיתופי ב-Google Drive משויכים משאבי הרשאות. כל משאב
מזהה את ההרשאה ל-type
(משתמש, קבוצה, דומיין, כל אחד)
ול-role
, למשל 'תגובה' או 'קורא'. לדוגמה, יכול להיות שלקובץ יש הרשאה שמעניקה למשתמש מסוים (type=user
) הרשאת קריאה בלבד (role=reader
), בעוד שהרשאה אחרת מעניקה לחברים בקבוצה ספציפית (type=group
) את היכולת להוסיף תגובות לקובץ (role=commenter
).
כאן תוכלו למצוא רשימה מלאה של התפקידים והפעולות שכל אחד מהם מאפשר.
תרחישים לשיתוף משאבים ב-Drive
יש חמישה סוגים שונים של תרחישי שיתוף:
כדי לשתף קובץ מ'האחסון שלי', למשתמש צריך להיות
role=writer
אוrole=owner
.אם הערך הבוליאני
writersCanShare
מוגדר ל-False
עבור הקובץ, למשתמש צריך להיותrole=owner
.אם למשתמש עם הדומיין
role=writer
יש גישה זמנית שכפופה לתאריך ולשעת תפוגה, הוא לא יוכל לשתף את הקובץ. מידע נוסף זמין במאמר הגדרת תאריך תפוגה להגבלת הגישה לקבצים.
כדי לשתף תיקייה מ'האחסון שלי', למשתמש צריך להיות
role=writer
אוrole=owner
.אם הערך הבוליאני
writersCanShare
מוגדר ל-False
עבור הקובץ, למשתמש צריכה להיותrole=owner
הפחות מגבילה.גישה זמנית (שנקבעת לפי תאריך ושעת תפוגה) אסורה בתיקיות 'האחסון שלי' עם
role=writer
. מידע נוסף זמין במאמר הגדרת תאריך תפוגה להגבלת הגישה לקבצים.
כדי לשתף קובץ מהאחסון השיתופי, למשתמש צריך להיות
role=writer
,role=fileOrganizer
אוrole=organizer
.- ההגדרה
writersCanShare
לא חלה על פריטים בתיקיות אחסון שיתופי. הפונקציה מתנהגת כאילו היא תמיד מוגדרת לערךTrue
.
- ההגדרה
כדי לשתף תיקייה באחסון שיתופי, למשתמש צריך להיות
role=organizer
.- אם המגבלה
sharingFoldersRequiresOrganizerPermission
על אחסון שיתופי מוגדרת ל-False
, משתמשים שיש להםrole=fileOrganizer
יכולים לשתף תיקיות באחסון השיתופי הזה.
- אם המגבלה
כדי לנהל את החברות באחסון השיתופי, צריך לוודא שיש לו
role=organizer
. רק משתמשים וקבוצות יכולים להיות חברים בתיקיות אחסון שיתופי.
הגדרת תאריך תפוגה כדי להגביל את הגישה לקבצים
כשאתם עובדים עם אנשים בפרויקט רגיש, כדאי לכם להגביל את הגישה שלהם לקבצים מסוימים ב-Drive אחרי פרק זמן מסוים. אפשר להגדיר תאריך תפוגה לקבצים ב'אחסון שלי' כדי להגביל או להסיר את הגישה אליהם.
כדי להגדיר את תאריך התפוגה:
- משתמשים ב-method
permissions.create
ומגדירים את השדהpermissions.expirationTime
(יחד עם שדות החובה האחרים). למידע נוסף, ראו יצירת הרשאה. - משתמשים ב-method
permissions.update
ומגדירים את השדהpermissions.expirationTime
(לצד שדות החובה האחרים). מידע נוסף זמין במאמר שינוי הרשאות.
השדה expirationTime
מציין מתי תוקף ההרשאה יפוג באמצעות RFC 3339 date-time. בין מועדי התפוגה חלות המגבלות הבאות:
- ניתן להגדיר אותן רק בהרשאות של משתמשים וקבוצות.
- השעה חייבת להיות בעתיד.
- התאריך לא יכול לחול יותר משנה אחרי התאריך הנוכחי.
למידע נוסף על תאריך תפוגה, אפשר לעיין במאמרים הבאים:
הפצת הרשאות
רשימות ההרשאות לתיקיות עוברות למטה, וכל התיקיות והקבצים הצאצאים יורשים את ההרשאות מההורה. בכל פעם שההרשאות או ההיררכיה משתנות, ההפצה מתרחשת באופן רקורסיבי בכל התיקיות המוצבות. לדוגמה, אם קובץ קיים בתיקייה והתיקייה הזו מועברת לתיקייה אחרת, ההרשאות בתיקייה החדשה יתעדכנו גם בקובץ. אם התיקייה החדשה תקצה למשתמש בקובץ תפקיד חדש, כמו 'writer', הוא יחליף את התפקיד הישן.
לעומת זאת, אם קובץ יורש את role=writer
מתיקייה ותועבר לתיקייה אחרת עם תפקיד 'קורא', הקובץ יורש עכשיו את role=reader
.
אי אפשר להסיר הרשאות שעברו בירושה מקובץ או מתיקייה באחסון שיתופי. במקום זאת, צריך להתאים את ההרשאות בהורה הישיר או העקיף שממנו הן עברו בירושה. אפשר להסיר את ההרשאות שעברו בירושה מפריטים שנמצאים בקטע 'האחסון שלי' או 'קבצים ששותפו איתי'.
לעומת זאת, אפשר לבטל הרשאות שעברו בירושה בקובץ או בתיקייה ב'אחסון שלי'. לכן, אם קובץ יורש את role=writer
מתיקיית 'האחסון שלי', אפשר להגדיר את role=reader
בקובץ כדי להוריד את רמת ההרשאה שלו.
יכולות
המשאב Permissions לא קובע בסופו של דבר את היכולת של המשתמש הנוכחי לבצע פעולות בקובץ או בתיקייה.
במקום זאת, המשאב Files מכיל אוסף של שדות capabilities
בוליאניים שמאפשרים לציין אם אפשר לבצע פעולה בקובץ או בתיקייה. ה-Google Drive API מגדיר את השדות האלה על סמך משאב ההרשאות של המשתמש הנוכחי שמשויך לקובץ או לתיקייה.
לדוגמה, כאשר אלכס מתחבר לאפליקציה ומנסה לשתף קובץ, התפקיד של אלכס נבדק לגבי הרשאות בקובץ. אם התפקיד מאפשר לשתף קובץ, השדות capabilities
שקשורים לקובץ (כמו canShare
) ימולאו ביחס לתפקיד. אם אלכס רוצה לשתף את הקובץ, האפליקציה תבדוק את השדה capabilities
כדי לוודא שהערך של canShare
מוגדר ל-true
.
דוגמה לאחזור קובץ capabilities
זמינה במאמר אימות הרשאות משתמש.
יצירת הרשאה
כשיוצרים הרשאה, צריך למלא את שני השדות הבאים:
type
–type
מזהה את היקף ההרשאה (user
,group
,domain
אוanyone
). הרשאה עםtype=user
חלה על משתמש ספציפי, ואילו הרשאה עםtype=domain
חלה על כל המשתמשים בדומיין ספציפי.role
– השדהrole
מזהה את הפעולות שה-type
יכול לבצע. לדוגמה, הרשאה באמצעותtype=user
ו-role=reader
מעניקה למשתמש מסוים הרשאת קריאה בלבד לקובץ או לתיקייה. לחלופין, הרשאה ל-type=domain
ול-role=commenter
מאפשרת לכל מי שבדומיין להוסיף תגובות לקובץ. כאן תוכלו למצוא רשימה מלאה של התפקידים והפעולות שכל אחד מהם מורשה.
כשיוצרים הרשאה עם type=user
או type=group
, צריך גם
לספק emailAddress
כדי לקשר
את המשתמש או הקבוצה הספציפיים להרשאה.
כשיוצרים הרשאה, צריך לציין גם domain
כדי לקשר דומיין ספציפי להרשאה.type=domain
כדי ליצור הרשאה:
- משתמשים ב-method
permissions.create
בשילוב עםfileId
לקובץ או לתיקייה המשויכים. - בגוף הבקשה, מציינים את
type
ואתrole
. - אם הערך הוא
type=user
אוtype=group
, יש לצייןemailAddress
. אם הערך הואtype=domain
, צריך לצייןdomain
.
הצג דוגמה
בקטע הקוד הבא מוסבר איך ליצור הרשאה. התגובה תחזיר מופע של משאב Permission
, כולל ה-permissionId
שהוקצה.
שליחת בקשה
POST https://www.googleapis.com/drive/v3/files/FILE_ID
/permissions
{ "requests": [ { "type": "user", "role": "commenter", "emailAddress": "alex@altostrat.com" } ] }
תשובה
{
"kind": "drive#permission",
"id": "PERMISSION_ID
",
"type": "user",
"role": "commenter"
}
שימוש בקהלי יעד
קהלי יעד הם קבוצות של אנשים – כמו מחלקות או צוותים – שאפשר להמליץ עליהם למשתמשים לשתף איתם את הפריטים שלהם. תוכלו לעודד את המשתמשים לשתף פריטים עם קהל ספציפי או מוגבל יותר, במקום עם הארגון כולו. משתמשי היעד יכולים לעזור לך לשפר את האבטחה והפרטיות של הנתונים, ולהקל על המשתמשים לשתף מידע בהתאם. למידע נוסף: מידע על משתמשי יעד.
כדי להשתמש בקהלי יעד:
במסוף Google Admin, נכנסים לתפריט > ספרייה > קהלי יעד.
צריך להיכנס באמצעות חשבון עם הרשאות סופר-אדמין כדי לבצע את המשימה הזו.
ברשימת משתמשי היעד, לוחצים על שם קהל היעד. איך יוצרים קהל יעד?
מעתיקים את המזהה הייחודי מכתובת ה-URL של קהל היעד:
https://admin.google.com/ac/targetaudiences/ID
.יוצרים הרשאה עם
type=domain
ומגדירים את השדהdomain
לערךID.audience.googledomains.com
.
כדי לראות את האינטראקציה של משתמשים עם משתמשי היעד, ראו חוויית משתמש לשיתוף באמצעות קישור.
אחזור כל ההרשאות לקובץ, לתיקייה או לאחסון שיתופי
משתמשים בשיטה permissions.list
כדי לאחזר את כל ההרשאות לקובץ, לתיקייה או לאחסון שיתופי.
הצג דוגמה
דוגמת הקוד הבאה מראה איך לקבל את כל ההרשאות. התשובה תחזיר רשימה של הרשאות.
שליחת בקשה
GET https://www.googleapis.com/drive/v3/files/FILE_ID
/permissions
תשובה
{
"kind": "drive#permissionList",
"permissions": [
{
"id": "PERMISSION_ID
",
"type": "user",
"kind": "drive#permission",
"role": "commenter"
}
]
}
אימות הרשאות המשתמשים
כשפותחים קובץ באפליקציה, צריך לבדוק את היכולות שלו ולעבד את ממשק המשתמש כך שישקף את ההרשאות של המשתמש הנוכחי. לדוגמה, אם למשתמש אין יכולת canComment
בקובץ, צריך להשבית את האפשרות להוסיף תגובות בממשק המשתמש.
כדי לקבל מידע נוסף על capabilities
, עיינו בקטע יכולות שלמעלה.
כדי לבדוק את היכולות, צריך להפעיל את files.get
באמצעות
הפרמטר fileId
ועם הפרמטר fields
שמוגדר לשדה capabilities
. למידע נוסף על החזרת שדות באמצעות הפרמטר fields
, קראו את המאמר החזרת שדות ספציפיים לקובץ.
הצג דוגמה
דוגמת הקוד הבאה מראה איך לאמת הרשאות של משתמשים. התגובה תחזיר רשימה של יכולות שיש למשתמש בקובץ. כל יכולת מתאימה לפעולה פרטנית שמשתמש יכול לבצע. חלק מהשדות מאוכלסים רק בפריטים שנמצאים בתיקיות אחסון שיתופי.
שליחת בקשה
GET https://www.googleapis.com/drive/v3/files/FILE_ID
?fields=capabilities
תשובה
{ "capabilities": { "canAcceptOwnership": false, "canAddChildren": false, "canAddMyDriveParent": false, "canChangeCopyRequiresWriterPermission": true, "canChangeSecurityUpdateEnabled": false, "canComment": true, "canCopy": true, "canDelete": true, "canDownload": true, "canEdit": true, "canListChildren": false, "canModifyContent": true, "canModifyContentRestriction": true, "canModifyLabels": true, "canMoveChildrenWithinDrive": false, "canMoveItemOutOfDrive": true, "canMoveItemWithinDrive": true, "canReadLabels": true, "canReadRevisions": true, "canRemoveChildren": false, "canRemoveMyDriveParent": true, "canRename": true, "canShare": true, "canTrash": true, "canUntrash": true } }
קביעת מקור התפקיד של קבצים ותיקיות באחסון שיתופי
כדי לשנות את התפקיד בקובץ או בתיקייה, צריך לדעת מהו מקור התפקיד. המקור של התפקיד בתיקיות אחסון שיתופי יכול להתבסס על חברות באחסון השיתופי, על התפקיד בתיקייה או על התפקיד בקובץ.
כדי לבדוק מה מקור התפקיד של אחסון שיתופי או פריטים באחסון השיתופי הזה, צריך להפעיל את השיטה permissions.get
ולציין את הפרמטר fileId
, את permissionId
ואת הפרמטר fields
בשדה permissionDetails
. כדי למצוא את permissionId
, משתמשים ב-permissions.list
עם fileId
. כדי
לאחזר את השדה permissionDetails
בבקשה permissions.list
, צריך להגדיר את הפרמטר
fields
כ-permissions/permissionDetails
.
בשדה הזה מפורטים כל ההרשאות הישירות וההרשאות שעברו בירושה למשתמש, לקבוצה או לדומיין.
הצג דוגמה
דוגמת הקוד הבאה מראה איך לקבוע את מקור התפקיד. התגובה מחזירה את ה-permissionDetails
של משאב Permission
. השדה inheritedFrom
מציין את המזהה של הפריט שממנו בוצעה ההרשאה.
שליחת בקשה
GET https://www.googleapis.com/drive/v3/files/FILE_ID
/permissions/PERMISSION_ID
?fields=permissionDetails&supportsAllDrives=true
תשובה
{
"permissionDetails": [
{
"permissionType": "member",
"role": "commenter",
"inheritedFrom": "INHERITED_FROM_ID
",
"inherited": true
},
{
"permissionType": "file",
"role": "writer",
"inherited": false
}
]
}
שינוי ההרשאות
כדי לשנות את ההרשאות בקובץ או בתיקייה מסוימים, אפשר לשנות את התפקיד שהוקצה:
מפעילים את
permissions.update
עםpermissionId
של הרשאת השינוי, ועםfileId
של הקובץ, התיקייה או האחסון השיתופי המשויכים. כדי למצוא אתpermissionId
, משתמשים ב-permissions.list
עםfileId
.בבקשה, יש לציין את
role
החדש.
אפשר לתת הרשאות לקבצים או לתיקיות ספציפיים באחסון השיתופי, גם אם המשתמש או הקבוצה כבר חברים באחסון השיתופי. לדוגמה, לאלכס יש את role=commenter
בחברות באחסון שיתופי. עם זאת, האפליקציה יכולה להעניק לאלכס role=writer
קובץ באחסון שיתופי. במקרה כזה, מכיוון שהתפקיד החדש מתירני יותר מהתפקיד שהוענק דרך החברות שלהם, ההרשאה החדשה הופכת לתפקיד בפועל של הקובץ או התיקייה.
הצג דוגמה
דוגמת הקוד הבאה מראה איך לשנות הרשאות בקובץ או בתיקייה מהרשאת תגובה להרשאת כתיבה. התגובה מחזירה מופע של משאב Permission
.
שליחת בקשה
PATCH https://www.googleapis.com/drive/v3/files/FILE_ID
/permissions/PERMISSION_ID
{ "requests": [ { "role": "writer" } ] }
תשובה
{
"kind": "drive#permission",
"id": "PERMISSION_ID
",
"type": "user",
"role": "writer"
}
ביטול הגישה לקובץ או לתיקייה
כדי לבטל את הגישה לקובץ או לתיקייה, צריך להפעיל את delete
באמצעות המספר fileId
ו-permissionId
כדי למחוק את ההרשאה.
בפריטים בתיקייה 'האחסון שלי' אפשר למחוק הרשאה שעברה בירושה. מחיקה של הרשאה שעברה בירושה מבטלת את הגישה לפריט ולפריטי הצאצא, אם קיימים.
בפריטים באחסון שיתופי, לא ניתן לבטל הרשאות שעברו בירושה. במקום זאת, עליכם לעדכן או לבטל את ההרשאה בקובץ או בתיקייה ברמה העליונה.
הפעולה delete
משמשת גם למחיקת הרשאות שהוחלו ישירות על קובץ או תיקייה באחסון שיתופי.
הצג דוגמה
דוגמת הקוד הבאה מראה איך לבטל גישה על ידי מחיקת permissionId
. אם הביצוע יהיה תקין, גוף התגובה יהיה ריק. כדי לוודא שההרשאה הוסרה, יש להשתמש ב-permissions.list
עם fileId
.
שליחת בקשה
DELETE https://www.googleapis.com/drive/v3/files/FILE_ID
/permissions/PERMISSION_ID
העברת בעלות על קובץ לחשבון Google Workspace אחר באותו ארגון
אפשר להעביר את הבעלות על קבצים שקיימים בתיקייה 'האחסון שלי' מחשבון Google Workspace אחד לחשבון אחר באותו ארגון. הקבצים שבתוכו הם בבעלות ארגון שבבעלותו אחסון שיתופי. לכן, אין תמיכה בהעברת בעלות על קבצים ותיקיות בתיקיות אחסון שיתופי. מארגנים של אחסון שיתופי יכולים להעביר פריטים מהאחסון השיתופי הזה ל'אחסון שלי' משלהם, שמעביר את הבעלות אליהם.
כדי להעביר בעלות על קובץ שנמצא בתיקייה 'האחסון שלי':
יוצרים הרשאת קובץ שמעניקה למשתמש מסוים (
type=user
) גישת בעלים (role=owner
).מעדכנים את ההרשאה של קובץ קיים באמצעות
role=owner
ומעבירים את הבעלות למשתמש שצוין (transferOwnership=true
).
העברת בעלות על קובץ מחשבון צרכן אחד לאחר
ניתן להעביר את הבעלות על קבצים בין חשבונות פרטיים. עם זאת, מערכת Drive לא מעבירה את הבעלות על קובץ בין שני חשבונות לצרכנים עד שהבעלים החדש הפוטנציאלי מביע הסכמה מפורשת להעברה. כדי להעביר בעלות על קובץ מחשבון צרכן אחד לאחר:
הבעלים הנוכחי מתחיל את העברת הבעלות על ידי יצירה או עדכון של הרשאה לקובץ של הבעלים החדש הפוטנציאלי. ההרשאה צריכה לכלול את ההגדרות הבאות:
role=writer
,type=user
ו-pendingOwner=true
. אם הבעלים החדשים יאשרו את הבעלות שלהם, תישלח הודעה באימייל לבעלים הפוטנציאלי. בהודעה יצוין שהם יתבקשו לקבל בעלות על הקובץ.הבעלים החדשים יאשרו את הבקשה להעברת בעלות על ידי יצירה או עדכון של ההרשאה שלהם לקובץ. ההרשאה צריכה לכלול את ההגדרות הבאות:
role=owner
ו-transferOwnership=true
. אם הבעלים החדשים יוצרים הרשאה חדשה, נשלחת התראה באימייל לבעלים הקודמים כדי לציין שהבעלות הועברה.
לאחר העברת קובץ, התפקיד של הבעלים הקודם ישודרג לאחור לתפקיד writer
.
שינוי הרשאות מרובות באמצעות בקשות באצווה
מומלץ מאוד להשתמש בבקשות לאצוות כדי לשנות מספר הרשאות.
לפניכם דוגמה לביצוע שינוי של הרשאות באצווה באמצעות ספריית לקוח.