Merumuskan dan menguji kueri keanggotaan
Dokumen ini menjelaskan cara merumuskan dan menguji kueri keanggotaan untuk memastikan pengguna yang benar ditampilkan.
Sebelum memulai
Lakukan tugas berikut sebelum melanjutkan dengan informasi di halaman ini:
Baca ringkasan Groups API.
Baca ringkasan grup dinamis.
Merumuskan dan menguji kueri Anda
Kueri keanggotaan berupa target_field condition
, dan diformat sebagai ekspresi Common Expression Language (CEL). Lihat Atribut pengguna yang valid untuk grup dinamis untuk mengetahui daftar kolom resource User
yang dapat digunakan.
Sampel kueri
Contoh berikut menunjukkan cara memeriksa nilai tertentu di kolom user.addresses
menggunakan fungsi CEL exists()
:
user.addresses.exists(ad, ad.locality=='Sunnyvale')
Makro exists()
digunakan untuk membuat kueri keanggotaan untuk kolom daftar jenis.
Berikut adalah contoh pemeriksaan beberapa nilai, (gedung) area
dan building_id
, dalam satu entri daftar:
user.locations.exists(loc, loc.area=='Sunnyvale' && loc.building_id=='Building 1')
Contoh berikut menunjukkan cara menemukan pengguna yang merupakan bagian dari unit organisasi tertentu:
- Semua pengguna langsung dalam unit org tertentu:
user.org_unit_id==orgUnitId('03ph8a2z1enx4lx')
- Semua pengguna langsung dan tidak langsung dalam unit org tertentu:
user.org_units.exists(org_unit, org_unit.org_unit_id==orgUnitId('03ph8a2z1khexns'))
user.name.value.equalsIgnoreCase('jOhn DoE')`
Negasi dalam kueri
Anda dapat menggunakan operator NOT !
dalam kueri keanggotaan untuk mengecualikan pengguna dengan
atribut tertentu. Berikut beberapa contohnya:
Semua pengguna yang tidak berada di unit organisasi tertentu:
!(user.org_unit_id==orgUnitId('03ph8a2z1enx4lx'))
Semua pengguna yang tidak termasuk dalam organisasi
Marketing
:!user.organization.exists(org, org.title = "Marketing")
Beberapa kombinasi operator NOT !
dan makro exists()
tidak didukung:
Kueri NOT
!
yang menggunakan makroexists()
dan operator AND&&
di dalamnya:!user.organization.exists(org, (org.title == "Cloud" && org.department == "Sales"))
Kueri apa pun yang menggunakan makro
exists()
dengan operator NOT!
di dalamnya:user.organization.exists(org, (org.title == "Cloud" || !(org.department == "Sales")))
Menguji kueri keanggotaan
Untuk menguji kueri keanggotaan, Anda dapat menggunakan builder kueri sederhana. Fungsi ini memungkinkan Anda menggunakan menu drop-down dan kolom teks untuk memasukkan dan menguji kueri. Setelah yakin kueri keanggotaan menampilkan hasil yang benar, Anda dapat membuat kueri CEL yang sesuai dengan Groups API.
Atribut pengguna khusus
Atribut pengguna kustom dapat digunakan dalam kueri grup dinamis selama skema kustom tersebut sudah ada di user.custom_schemas
, tetapi atribut tersebut tidak didukung di menu drop-down pembuat kueri sederhana. Guna menguji kueri untuk atribut pengguna khusus, masukkan kueri tersebut dalam format
kueri CEL secara langsung ke kotak teks Enter cel query. Contoh skema kustom akan terlihat seperti ini:
{
"schemaName": "employmentData",
"fields": [
{
"fieldName": "EmployeeNumber",
"fieldType": "STRING",
"multiValued": "false"
},
{
"fieldName": "JobFamily",
"fieldType": "STRING",
"multiValued": "true"
}
]
}
Kolom bernilai tunggal
user.custom_schemas.employmentData.EmployeeNumber == 'value'
Kolom multinilai
user.custom_schemas.employmentData.JobFamily.exists(fld, fld == 'value')
Langkah selanjutnya
Setelah menguji kueri keanggotaan, Anda dapat menggunakannya saat membuat grup. Untuk informasi selengkapnya, lihat Membuat grup dinamis.