Setiap file, folder, dan drive bersama Google Drive memiliki resource
izin terkait. Setiap resource
mengidentifikasi izin untuk type
tertentu (pengguna, grup, domain, siapa saja)
dan role
, seperti "pemberi komentar" atau "pembaca". Misalnya, file mungkin memiliki
izin yang memberikan akses hanya baca kepada pengguna tertentu (type=user
)
(role=reader
), sementara izin lain memberikan kemampuan kepada anggota grup tertentu
(type=group
) untuk menambahkan komentar ke file (role=commenter
).
Untuk mengetahui daftar lengkap peran dan operasi yang diizinkan oleh setiap peran, baca bagian Peran & izin.
Skenario untuk berbagi resource Drive
Ada lima jenis skenario berbagi:
Untuk membagikan file di Drive Saya, pengguna harus memiliki
role=writer
ataurole=owner
.Jika nilai boolean
writersCanShare
disetel keFalse
untuk file, pengguna harus memilikirole=owner
.Jika pengguna dengan
role=writer
memiliki akses sementara yang diatur oleh tanggal dan waktu habis masa berlaku, mereka tidak dapat membagikan file. Untuk mengetahui informasi selengkapnya, lihat Menetapkan tanggal habis masa berlaku untuk membatasi akses file.
Untuk membagikan folder di Drive Saya, pengguna harus memiliki
role=writer
ataurole=owner
.Jika nilai boolean
writersCanShare
untuk file ini ditetapkan keFalse
, pengguna harus memilikirole=owner
yang lebih permisif.Akses sementara (diatur oleh tanggal dan waktu habis masa berlaku) tidak diizinkan di folder Drive Saya dengan
role=writer
. Untuk mengetahui informasi selengkapnya, lihat Menetapkan tanggal habis masa berlaku untuk membatasi akses file.
Untuk membagikan file di drive bersama, pengguna harus memiliki
role=writer
,role=fileOrganizer
, ataurole=organizer
.- Setelan
writersCanShare
tidak berlaku untuk item di drive bersama. Status ini diperlakukan seolah-olah selalu disetel keTrue
.
- Setelan
Untuk membagikan folder di drive bersama, pengguna harus memiliki
role=organizer
.- Jika pembatasan
sharingFoldersRequiresOrganizerPermission
di drive bersama ditetapkan keFalse
, pengguna denganrole=fileOrganizer
dapat membagikan folder di drive bersama tersebut.
- Jika pembatasan
Untuk mengelola keanggotaan drive bersama, pengguna harus memiliki
role=organizer
. Hanya pengguna dan grup yang dapat menjadi anggota drive bersama.
Menetapkan tanggal habis masa berlaku untuk membatasi akses file
Saat bekerja dengan orang lain pada project sensitif, Anda mungkin perlu membatasi akses mereka ke file tertentu di Drive setelah jangka waktu tertentu. Untuk file di Drive Saya, Anda dapat menetapkan tanggal habis masa berlaku untuk membatasi atau menghapus akses ke file tersebut.
Untuk menetapkan tanggal habis masa berlaku:
- Gunakan metode
permissions.create
dan tetapkan kolompermissions.expirationTime
(beserta kolom wajib diisi lainnya). Untuk mengetahui informasi selengkapnya, lihat Membuat izin. - Gunakan metode
permissions.update
dan tetapkan kolompermissions.expirationTime
(beserta kolom wajib lainnya). Untuk mengetahui informasi selengkapnya, lihat Mengubah izin.
Kolom expirationTime
menunjukkan kapan izin berakhir menggunakan tanggal-waktu
RFC 3339
. Waktu habis masa berlaku memiliki batasan berikut:
- Izin tersebut hanya dapat ditetapkan berdasarkan izin pengguna dan grup.
- Waktunya harus di masa mendatang.
- Waktunya tidak boleh lebih dari satu tahun ke depan.
Untuk mengetahui informasi selengkapnya tentang tanggal habis masa berlaku, baca artikel berikut:
Penerapan izin
Daftar izin untuk folder diterapkan ke bawah, dan semua file serta folder turunan mewarisi izin dari induknya. Setiap kali izin atau hierarki diubah, penerapan akan terjadi secara berulang di semua folder bertingkat. Misalnya, jika sebuah file ada di dalam sebuah folder, lalu folder tersebut dipindahkan ke dalam folder lain, izin di folder baru tersebut akan diterapkan ke file tersebut. Jika folder baru memberikan peran baru kepada pengguna file, seperti "penulis", folder tersebut akan menggantikan peran lama pengguna.
Sebaliknya, jika file mewarisi role=writer
dari folder, dan dipindahkan ke
folder lain yang memberikan peran "pembaca", file tersebut sekarang mewarisi
role=reader
.
Izin yang diwarisi tidak dapat dihapus dari file atau folder di drive bersama. Sebagai gantinya, izin ini harus disesuaikan pada induk langsung atau tidak langsung tempat izin tersebut diwarisi. Izin yang diwarisi dapat dihapus dari item di "Drive Saya" atau "Dibagikan kepada saya".
Sebaliknya, izin yang diwarisi dapat diganti pada file atau folder di Drive
Saya. Jadi, jika file mewarisi role=writer
dari folder
Drive Saya, Anda dapat menetapkan role=reader
pada file untuk menurunkan
tingkat izinnya.
Kemampuan
Resource Izin pada akhirnya tidak
menentukan kemampuan pengguna saat ini untuk melakukan tindakan pada file atau folder.
Sebaliknya, resource Files berisi kumpulan
kolom capabilities
boolean yang digunakan untuk menunjukkan apakah suatu tindakan dapat
dilakukan pada file atau folder. Google Drive API menetapkan kolom ini berdasarkan
resource izin pengguna saat ini yang terkait dengan file atau folder.
Misalnya, saat Alex login ke aplikasi Anda dan mencoba berbagi file, peran Alex akan diperiksa untuk mengetahui izin pada file tersebut. Jika peran memungkinkan mereka untuk berbagi file,
capabilities
yang terkait dengan file tersebut, misalnya canShare
, akan diisi
sesuai dengan peran. Jika Ali ingin membagikan file tersebut, aplikasi Anda akan memeriksa
capabilities
untuk memastikan canShare
disetel ke true
.
Untuk contoh pengambilan file capabilities
, lihat Memverifikasi izin
pengguna.
Membuat izin
Dua kolom berikut diperlukan saat membuat izin:
type
—type
mengidentifikasi cakupan izin (user
,group
,domain
, atauanyone
). Izin dengantype=user
berlaku untuk pengguna tertentu, sedangkan izin dengantype=domain
berlaku untuk semua orang di domain tertentu.role
—Kolomrole
mengidentifikasi operasi yang dapat dilakukantype
. Misalnya, izin dengantype=user
danrole=reader
memberikan akses hanya baca kepada pengguna tertentu ke file atau folder. Atau, izin dengantype=domain
danrole=commenter
memungkinkan semua orang di domain itu menambahkan komentar ke file. Untuk mengetahui daftar lengkap peran dan operasi yang diizinkan oleh setiap peran, baca bagian Peran & izin.
Saat membuat izin dengan type=user
atau type=group
, Anda juga harus
menyediakan emailAddress
untuk mengaitkan
pengguna atau grup tertentu ke izin tersebut.
Saat membuat izin dengan type=domain
, Anda juga harus memberikan
domain
untuk mengaitkan domain tertentu
dengan izin tersebut.
Untuk membuat izin:
- Gunakan metode
permissions.create
denganfileId
untuk file atau folder terkait. - Dalam isi permintaan, tentukan
type
danrole
. - Jika
type=user
atautype=group
, berikanemailAddress
. Jikatype=domain
, berikandomain
.
Tampilkan contoh
Contoh kode berikut menunjukkan cara membuat izin. Respons menampilkan instance resource Permission
, termasuk permissionId
yang ditetapkan.
Permintaan
POST https://www.googleapis.com/drive/v3/files/FILE_ID
/permissions
{ "requests": [ { "type": "user", "role": "commenter", "emailAddress": "alex@altostrat.com" } ] }
Respons
{
"kind": "drive#permission",
"id": "PERMISSION_ID
",
"type": "user",
"role": "commenter"
}
Menggunakan target audiens
Target audiens adalah kelompok orang—seperti departemen atau tim—yang dapat Anda rekomendasikan kepada pengguna untuk diajak berbagi item. Anda dapat mendorong pengguna untuk berbagi item dengan audiens yang lebih spesifik atau terbatas, bukan seluruh organisasi Anda. Target audiens dapat membantu Anda meningkatkan keamanan dan privasi data, serta memudahkan pengguna untuk berbagi dengan tepat. Untuk mengetahui informasi selengkapnya, lihat Tentang target audiens.
Untuk menggunakan target audiens:
Di konsol Google Admin, buka Menu > Direktori > Target audiens.
Anda harus login menggunakan akun yang memiliki hak istimewa administrator super untuk melakukan tindakan ini.
Di Daftar target audiens, klik nama target audiens tersebut. Untuk membuat target audiens, lihat Membuat target audiens
Salin ID unik dari URL target audiens:
https://admin.google.com/ac/targetaudiences/ID
.Buat izin dengan
type=domain
, dan setel kolomdomain
keID.audience.googledomains.com
.
Untuk melihat cara pengguna berinteraksi dengan target audiens, lihat Pengalaman pengguna untuk berbagi link.
Mengambil semua izin untuk file, folder, atau drive bersama
Gunakan metode permissions.list
untuk
mengambil semua izin untuk file, folder, atau drive bersama.
Tampilkan contoh
Contoh kode berikut menunjukkan cara mendapatkan semua izin. Respons akan menampilkan daftar izin.
Permintaan
GET https://www.googleapis.com/drive/v3/files/FILE_ID
/permissions
Respons
{
"kind": "drive#permissionList",
"permissions": [
{
"id": "PERMISSION_ID
",
"type": "user",
"kind": "drive#permission",
"role": "commenter"
}
]
}
Memverifikasi izin pengguna
Saat membuka file, aplikasi harus memeriksa kemampuan file dan merender
UI untuk mencerminkan izin pengguna saat ini. Misalnya, jika pengguna
tidak memiliki kemampuan canComment
pada file, kemampuan untuk memberi komentar
harus dinonaktifkan di UI.
Untuk mengetahui informasi selengkapnya tentang capabilities
, lihat bagian Kemampuan
di atas.
Untuk memeriksa kemampuan, panggil files.get
dengan
parameter fileId
dan fields
ditetapkan ke kolom capabilities
. Untuk
mengetahui informasi selengkapnya tentang kolom yang ditampilkan menggunakan parameter fields
, lihat
Menampilkan kolom tertentu untuk file.
Tampilkan contoh
Contoh kode berikut menunjukkan cara memverifikasi izin pengguna. Respons akan menampilkan daftar kemampuan yang dimiliki pengguna pada file. Setiap kemampuan berkaitan dengan tindakan terperinci yang dapat dilakukan pengguna. Beberapa kolom hanya diisi untuk item di drive bersama.
Permintaan
GET https://www.googleapis.com/drive/v3/files/FILE_ID
?fields=capabilities
Respons
{ "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 } }
Menentukan sumber peran untuk file & folder drive bersama
Untuk mengubah peran di file atau folder, Anda harus mengetahui sumber peran tersebut. Untuk drive bersama, sumber peran dapat didasarkan pada keanggotaan ke drive bersama, peran pada folder, atau peran pada file.
Untuk menentukan sumber peran untuk drive bersama, atau item dalam drive tersebut, panggil permissions.get
dengan parameter fileId
, permissionId
, dan fields
yang ditetapkan ke kolom permissionDetails
. Untuk menemukan permissionId
, gunakan
permissions.list
dengan fileId
. Untuk
mengambil kolom permissionDetails
pada permintaan permissions.list
, tetapkan
parameter fields
ke permissions/permissionDetails
.
Kolom ini menghitung semua izin file langsung dan yang diwarisi untuk pengguna, grup, atau domain.
Tampilkan contoh
Contoh kode berikut menunjukkan cara menentukan sumber peran. Respons menampilkan permissionDetails
dari resource Permission
. Kolom inheritedFrom
memberikan ID item yang mewariskan izin.
Permintaan
GET https://www.googleapis.com/drive/v3/files/FILE_ID
/permissions/PERMISSION_ID
?fields=permissionDetails&supportsAllDrives=true
Respons
{
"permissionDetails": [
{
"permissionType": "member",
"role": "commenter",
"inheritedFrom": "INHERITED_FROM_ID
",
"inherited": true
},
{
"permissionType": "file",
"role": "writer",
"inherited": false
}
]
}
Ubah izin
Untuk mengubah izin pada file atau folder, Anda dapat mengubah peran yang ditetapkan:
Panggil
permissions.update
denganpermissionId
izin perubahan danfileId
untuk file, folder, atau drive bersama yang terkait. Untuk menemukanpermissionId
, gunakanpermissions.list
denganfileId
.Dalam permintaan, identifikasi
role
baru.
Anda dapat memberikan izin pada setiap file atau folder di drive bersama meskipun pengguna atau grup sudah menjadi anggota. Misalnya, Alex memiliki role=commenter
sebagai bagian dari keanggotaannya ke drive bersama. Namun, aplikasi Anda dapat memberi Ali
role=writer
untuk file di drive bersama. Dalam hal ini, karena peran baru
lebih permisif daripada peran yang diberikan melalui keanggotaannya, izin baru
menjadi peran efektif untuk file atau folder.
Tampilkan contoh
Contoh kode berikut menunjukkan cara mengubah izin pada file atau folder dari pemberi komentar menjadi penulis. Respons menampilkan instance resource Permission
.
Permintaan
PATCH https://www.googleapis.com/drive/v3/files/FILE_ID
/permissions/PERMISSION_ID
{ "requests": [ { "role": "writer" } ] }
Respons
{
"kind": "drive#permission",
"id": "PERMISSION_ID
",
"type": "user",
"role": "writer"
}
Mencabut akses ke file atau folder
Untuk mencabut akses ke file atau folder, panggil
delete
dengan fileId
dan
permissionId
untuk menghapus izin.
Untuk item di "Drive Saya", Anda dapat menghapus izin yang diwariskan. Menghapus izin yang diwarisi akan mencabut akses ke item dan item turunan, jika ada.
Untuk item di drive bersama, izin yang diwarisi tidak dapat dicabut. Perbarui atau cabut izin pada file atau folder induk.
Operasi delete
juga digunakan untuk menghapus izin yang langsung diterapkan ke
file atau folder drive bersama.
Tampilkan contoh
Contoh kode berikut menunjukkan cara mencabut akses dengan menghapus permissionId
. Jika berhasil, isi respons akan kosong. Untuk mengonfirmasi bahwa izin dihapus, gunakan permissions.list
dengan fileId
.
Permintaan
DELETE https://www.googleapis.com/drive/v3/files/FILE_ID
/permissions/PERMISSION_ID
Mentransfer kepemilikan file ke akun Google Workspace lain di organisasi yang sama
Kepemilikan file yang ada di "Drive Saya" dapat ditransfer dari satu akun Google Workspace ke akun lain di organisasi yang sama. Organisasi yang memiliki {i>drive<i} bersama memiliki file di dalamnya. Oleh karena itu, transfer kepemilikan tidak didukung untuk file dan folder di drive bersama. Penyelenggara drive bersama dapat memindahkan item dari drive bersama tersebut dan ke "Drive Saya" miliknya sendiri, yang akan mentransfer kepemilikan kepada item tersebut.
Untuk mentransfer kepemilikan file di "Drive Saya", lakukan salah satu hal berikut:
Membuat izin file yang memberikan akses pemilik kepada pengguna tertentu (
type=user
) (role=owner
).Perbarui izin file yang ada dengan
role=owner
dan transfer kepemilikan kepada pengguna yang ditentukan (transferOwnership=true
).
Mentransfer kepemilikan file dari satu akun konsumen ke akun lainnya
Kepemilikan file dapat ditransfer antara satu akun konsumen ke akun lainnya. Namun, Drive tidak mentransfer kepemilikan file antara dua akun konsumen hingga calon pemilik baru secara eksplisit menyetujui transfer tersebut. Untuk mentransfer kepemilikan file dari satu akun konsumen ke akun lainnya:
Pemilik saat ini memulai transfer kepemilikan dengan membuat atau memperbarui izin file calon pemilik baru. Izin tersebut harus mencakup setelan berikut:
role=writer
,type=user
, danpendingOwner=true
. Jika pemilik baru membuat izin untuk calon pemilik, notifikasi email akan dikirim ke calon pemilik baru yang menunjukkan bahwa mereka diminta untuk mengambil alih kepemilikan file.Pemilik baru menerima permintaan transfer kepemilikan dengan membuat atau memperbarui izin filenya. Izin tersebut harus menyertakan setelan berikut:
role=owner
dantransferOwnership=true
. Jika pemilik baru membuat izin baru, notifikasi email akan dikirim ke pemilik sebelumnya yang menunjukkan bahwa kepemilikan telah ditransfer.
Saat file ditransfer, peran pemilik sebelumnya didowngrade menjadi writer
.
Mengubah beberapa izin dengan permintaan batch
Sebaiknya gunakan permintaan batch untuk mengubah beberapa izin.
Berikut adalah contoh cara melakukan modifikasi izin batch dengan library klien.