Ambil, buat, perbarui, dan hapus peran pengguna kustom dengan izin yang terperinci.


Peran Kustom

Peran kustom di Blue memungkinkan Anda untuk mendefinisikan set izin yang tepat yang disesuaikan dengan kebutuhan tim Anda. Selain tingkat akses standar (PEMILIK, ADMIN, ANGGOTA, dll.), peran kustom memberikan kontrol terperinci atas apa yang dapat dilihat dan dilakukan pengguna dalam proyek.

Contoh Dasar - Daftar Peran Kustom

Ambil semua peran kustom untuk sebuah proyek:

query GetProjectRoles {
  projectUserRoles(filter: { projectId: "web-redesign" }) {
    id
    name
    description
    allowInviteOthers
    canDeleteRecords
  }
}

Contoh Lanjutan - Buat Peran Kustom

Buat peran kontraktor dengan izin tertentu:

mutation CreateContractorRole {
  createProjectUserRole(
    input: {
      projectId: "web-redesign"
      name: "External Contractor"
      description: "Limited access for external contractors"
      allowInviteOthers: false
      allowMarkRecordsAsDone: true
      canDeleteRecords: false
      showOnlyAssignedTodos: true
      isActivityEnabled: true
      isFormsEnabled: false
      isWikiEnabled: true
      isChatEnabled: false
      isDocsEnabled: true
      isFilesEnabled: true
      isRecordsEnabled: true
      isPeopleEnabled: false
    }
  ) {
    id
    name
  }
}

Operasi yang Tersedia

Query: projectUserRoles

Ambil semua peran kustom untuk sebuah proyek.

Parameter Input

Parameter Tipe Diperlukan Deskripsi
filter.projectId String Tidak ID proyek atau slug (jika tidak diberikan, mengembalikan peran untuk semua proyek yang dapat diakses)

Mutasi: createProjectUserRole

Buat peran kustom baru dengan izin tertentu.

Parameter Input

Parameter Tipe Diperlukan Deskripsi
projectId String! ✅ Ya ID proyek atau slug
name String! ✅ Ya Nama peran
description String Tidak Deskripsi peran
Permission Flags
allowInviteOthers Boolean Tidak Dapat mengundang pengguna baru (default: false)
allowMarkRecordsAsDone Boolean Tidak Dapat menyelesaikan tugas (default: false)
canDeleteRecords Boolean Tidak Dapat menghapus catatan (default: true)
Feature Access
isActivityEnabled Boolean Tidak Akses ke bagian Aktivitas (default: true)
isChatEnabled Boolean Tidak Akses ke Obrolan (default: true)
isDocsEnabled Boolean Tidak Akses ke Dokumen (default: true)
isFilesEnabled Boolean Tidak Akses ke Berkas (default: true)
isFormsEnabled Boolean Tidak Akses ke Formulir (default: true)
isWikiEnabled Boolean Tidak Akses ke Wiki (default: true)
isRecordsEnabled Boolean Tidak Akses ke Catatan (default: true)
isPeopleEnabled Boolean Tidak Akses ke bagian Orang (default: true)
Visibility Settings
showOnlyAssignedTodos Boolean Tidak Hanya melihat tugas yang ditugaskan (default: false)
showOnlyMentionedComments Boolean Tidak Hanya melihat komentar yang disebutkan (default: false)

Mutasi: updateProjectUserRole

Perbarui peran kustom yang ada.

Parameter Input

Sama seperti createProjectUserRole, ditambah:

Parameter Tipe Diperlukan Deskripsi
roleId String! ✅ Ya ID peran yang akan diperbarui

Mutasi: deleteProjectUserRole

Hapus peran kustom.

Parameter Input

Parameter Tipe Diperlukan Deskripsi
roleId String! ✅ Ya ID peran yang akan dihapus
projectId String! ✅ Ya ID proyek atau slug

Bidang Respons

Objek ProjectUserRole

Field Tipe Deskripsi
id String! Pengidentifikasi peran yang unik
name String! Nama peran
description String Deskripsi peran
createdAt DateTime! Stempel waktu pembuatan
updatedAt DateTime! Stempel waktu pembaruan terakhir
Permissions
allowInviteOthers Boolean! Dapat mengundang pengguna
allowMarkRecordsAsDone Boolean! Dapat menyelesaikan tugas
canDeleteRecords Boolean! Dapat menghapus catatan
Feature Flags
isActivityEnabled Boolean! Akses ke bagian Aktivitas
isChatEnabled Boolean! Akses ke Obrolan
isDocsEnabled Boolean! Akses ke Dokumen
isFilesEnabled Boolean! Akses ke Berkas
isFormsEnabled Boolean! Akses ke Formulir
isWikiEnabled Boolean! Akses ke Wiki
isRecordsEnabled Boolean! Akses ke Catatan
isPeopleEnabled Boolean! Akses ke bagian Orang
Visibility
showOnlyAssignedTodos Boolean! Filter visibilitas tugas
showOnlyMentionedComments Boolean! Filter visibilitas komentar

Izin yang Diperlukan

Operasi Izin yang Diperlukan
projectUserRoles Any project member
createProjectUserRole Project OWNER or ADMIN
updateProjectUserRole Project OWNER or ADMIN
deleteProjectUserRole Project OWNER or ADMIN

Respons Kesalahan

Izin Tidak Cukup

{
  "errors": [{
    "message": "You don't have permission to manage custom roles",
    "extensions": {
      "code": "UNAUTHORIZED"
    }
  }]
}

Peran Tidak Ditemukan

{
  "errors": [{
    "message": "Custom role not found",
    "extensions": {
      "code": "PROJECT_USER_ROLE_NOT_FOUND"
    }
  }]
}

Batas Peran Tercapai

{
  "errors": [{
    "message": "Project user role limit reached.",
    "extensions": {
      "code": "PROJECT_USER_ROLE_LIMIT"
    }
  }]
}

Catatan Penting

  • Izin Default: Saat membuat peran, izin boolean yang tidak ditentukan default ke false kecuali untuk canDeleteRecords yang default ke true
  • Penugasan Peran: Tugaskan peran kustom dengan mengatur accessLevel: MEMBER dan memberikan roleId dalam mutasi inviteUser
  • Hierarki: Peran kustom diperlakukan sebagai tingkat ANGGOTA untuk tujuan hierarki
  • Batas Peran: Setiap proyek dapat memiliki maksimum 20 peran kustom
  • Akses Fitur: Bendera fitur mengontrol akses ke seluruh bagian aplikasi

Kasus Penggunaan

Peran Kontraktor

{
  name: "Contractor",
  allowInviteOthers: false,
  canDeleteRecords: false,
  showOnlyAssignedTodos: true,
  isActivityEnabled: true,
  isChatEnabled: false,
  isPeopleEnabled: false
}

Pemimpin Departemen

{
  name: "Department Lead",
  allowInviteOthers: true,
  allowMarkRecordsAsDone: true,
  canDeleteRecords: true,
  isActivityEnabled: true,
  isWikiEnabled: true,
  isPeopleEnabled: true
}

Pengamat Hanya-Baca

{
  name: "Observer",
  allowMarkRecordsAsDone: false,
  canDeleteRecords: false,
  allowInviteOthers: false,
  showOnlyMentionedComments: true,
  isFormsEnabled: false
}

Operasi Terkait

Asisten AI

Respon dihasilkan menggunakan AI dan mungkin mengandung kesalahan.

Bagaimana saya bisa membantu Anda?

Tanyakan apa saja tentang Blue atau dokumentasi ini.

Masukkan untuk mengirim • Shift+Masukkan untuk baris baru • ⌘I untuk membuka