Ikhtisar
Dokumen ini menjelaskan cara mengubah izin dokumen, file, atau folder di Knowledge Base, termasuk:- Menambah izin — Memberikan pengguna akses ke file atau folder.
- Menghapus izin — Mencabut akses pengguna ke file atau folder.
- Mengubah izin — Mengubah peran izin pengguna pada file atau folder.
- Mengatur mode pewarisan izin — Mengontrol apakah file atau folder mewarisi izin dari node induknya.
- Mendapatkan mode pewarisan izin — Menanyakan mode pewarisan izin saat ini pada file atau folder.
Konsep inti: Semua operasi izin didasarkan pada dentryUuid file (pengenal file yang unik). Operator harus memiliki kemampuan pengelolaan izin pada file target.
Ikhtisar izin
Berikut menjelaskan berbagai tipe pengguna dan peran izin, beserta kemampuan yang diberikan oleh setiap peran.Peran izin (roleId)
Saat mengubah izin, Anda harus menentukan peran izin:Tipe anggota (members.type)
Implementasi: Menambah izin
Panggil APIPOST /v2.0/storage/spaces/dentries/{dentryUuid}/permissions untuk memberikan anggota tertentu akses ke file atau folder.
Untuk detail API, lihat dokumen Menambah izin. Untuk cara memanggil API, lihat dokumentasi tentang memanggil Server API.
Parameter wajib
dentryUuid(Path): Pengenal unik dari file atau folder target. Dapatkan melalui API Pencarian File.unionId(Query): unionId operator. Dapatkan dengan memanggil API Menanyakan detail pengguna.roleId(Body): Peran izin yang diberikan, misalnya EDITOR.members(Body): Daftar anggota yang akan diberi otorisasi. Untuk setiap anggota, tentukantype(tipe anggota) danid(ID anggota).
Implementasi: Mengubah izin
Panggil APIPUT /v2.0/storage/spaces/dentries/{dentryUuid}/permissions untuk mengubah peran izin anggota tertentu menjadi peran baru.
Batasan penting saat menurunkan izin: Jika izin anggota saat ini diwarisi dari node induk, dan peran yang diwarisi lebih tinggi daripada peran target yang ingin Anda tetapkan, maka perubahan tidak akan berlaku.
- Contoh: Jika folder induk memberikan izin EDITOR kepada pengguna, mengubah pengguna menjadi READER pada subfolder akan gagal karena izin EDITOR yang diwarisi masih berlaku.
- Solusi: Pertama, panggil API Mengatur mode pewarisan izin pada file atau folder, atur mode pewarisan ke BREAK untuk menghentikan pewarisan izin induk, lalu ubah izinnya.
Untuk detail API, lihat dokumen Mengubah izin. Untuk cara memanggil API, lihat dokumentasi tentang memanggil Server API.
Parameter wajib
dentryUuid(Path): Pengenal unik dari file atau folder target. Dapatkan melalui API Pencarian File.unionId(Query): unionId operator. Dapatkan dengan memanggil API Menanyakan detail pengguna.roleId(Body): Peran izin target setelah perubahan (misalnya, mengubah dari EDITOR menjadi READER).members(Body): Daftar anggota yang izinnya akan diubah.
Implementasi: Menghapus izin
Panggil APIPOST /v2.0/storage/spaces/dentries/{dentryUuid}/permissions/remove untuk menghapus akses anggota tertentu ke file atau folder.
Untuk detail API, lihat dokumen Menghapus izin. Untuk cara memanggil API, lihat dokumentasi tentang memanggil Server API.
Parameter wajib
dentryUuid(Path): Pengenal unik dari file atau folder target. Dapatkan melalui API Pencarian File.unionId(Query): unionId operator. Dapatkan dengan memanggil API Menanyakan detail pengguna.roleId(Body): Peran izin yang akan dihapus (harus sesuai dengan peran yang saat ini dimiliki anggota).members(Body): Daftar anggota yang izinnya akan dihapus.
Implementasi: Mengatur mode pewarisan izin
Panggil APIPUT /v2.0/storage/spaces/dentries/{dentryUuid}/permissions/inheritances untuk mengontrol apakah file atau folder mewarisi izin dari node induknya.
Dua mode pewarisan
- PASS_ON (Teruskan): Node saat ini mewarisi semua izin dari node induknya. Untuk anggota yang sama, peran tertinggi yang berlaku. (Mode default)
- BREAK (Putus): Pewarisan izin diputus pada node saat ini, dan node tidak lagi mewarisi izin induk. Gunakan mode ini saat Anda memerlukan izin independen pada suatu node.
Catatan
- Mode BREAK tidak dapat diterapkan pada peran OWNER atau MANAGER.
- Untuk detail API, lihat dokumen Mengatur mode pewarisan izin. Untuk cara memanggil API, lihat dokumentasi tentang memanggil Server API.
Parameter wajib
dentryUuid(Path): Pengenal unik dari file atau folder target. Dapatkan melalui API Pencarian File.unionId(Query): unionId operator. Dapatkan dengan memanggil API Menanyakan detail pengguna.inheritance(Body): Mode pewarisan, baik PASS_ON maupun BREAK.
Implementasi: Mendapatkan mode pewarisan izin
Panggil APIGET /v2.0/storage/spaces/dentries/{dentryUuid}/permissions/inheritances untuk menanyakan mode pewarisan izin saat ini pada file atau folder.
Catatan
- API mengembalikan bidang
inheritance, dengan nilai PASS_ON (Teruskan) atau BREAK (Putus). - Untuk detail API, lihat dokumen Mendapatkan mode pewarisan izin. Untuk cara memanggil API, lihat dokumentasi tentang memanggil Server API.
Parameter wajib
dentryUuid(Path): Pengenal unik dari file atau folder target. Dapatkan melalui API Pencarian File.unionId(Query): unionId operator. Dapatkan dengan memanggil API Menanyakan detail pengguna.
Skenario umum dan langkahnya
Skenario 1: Memberikan izin edit pada file kepada pengguna
- Panggil API Pencarian File untuk mendapatkan
dentryUuiddari file target. - Panggil API Menanyakan detail pengguna untuk mendapatkan
userIdpengguna target danunionIdoperator. - Panggil API Menambah izin dengan
roleId = "EDITOR",members[0].type = "USER", danmembers[0].id = userId pengguna target.
Skenario 2: Menurunkan izin pengguna dari Editor menjadi Hanya Baca
- Panggil API Pencarian File untuk mendapatkan
dentryUuiddari file target. - Panggil API Menanyakan detail pengguna untuk mendapatkan
userIdpengguna target. - Panggil API Mengubah izin dengan
roleId = "READER", dan tentukan pengguna target dimembers.
Skenario 3: Menghapus semua izin pengguna pada suatu file
- Panggil API Pencarian File untuk mendapatkan
dentryUuiddari file target. - Panggil API Menanyakan detail pengguna untuk mendapatkan
userIdpengguna target. - Panggil API Menghapus izin dengan
roleIddiatur ke peran izin yang saat ini dimiliki pengguna, dan tentukan pengguna target dimembers.
Skenario 4: Mengatur izin independen untuk subfolder (tanpa mewarisi dari folder induk)
- Panggil API Pencarian File untuk mendapatkan
dentryUuiddari subfolder. - Panggil API Mengatur mode pewarisan izin dengan
inheritance = "BREAK"untuk memutus pewarisan izin. - Panggil API Menambah izin untuk mengonfigurasi anggota dan peran izin yang diperlukan untuk folder secara independen.
Catatan
- Operator (
unionId) harus memiliki kemampuan pengelolaan izin pada file target. Jika tidak, error Izin tidak memadai akan dikembalikan. - Saat menghapus izin,
roleIdharus sesuai dengan peran izin yang saat ini dimiliki anggota. Jika tidak, operasi akan menjadi tidak valid. - Pewarisan peran OWNER dan MANAGER tidak dapat diputus menggunakan mode BREAK.
- Daftar
membersmendukung hingga 30 anggota per panggilan. Untuk anggota yang lebih banyak, kirim permintaan secara bertahap. - Saat ini, semua API izin hanya didukung oleh aplikasi internal. Aplikasi pihak ketiga tidak didukung.