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:

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 makro exists() 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.