אפשר לחפש משתמשים שתואמים למאפיינים מסוימים באמצעות השיטה users.list() של Directory API. השיטה הזו מקבלת את הפרמטר query, שהוא שאילתת חיפוש שמשלבת סעיף חיפוש אחד או יותר. כל פסקה של חיפוש מורכבת מ-3 חלקים:
- שדה
- מאפיין המשתמש שחיפשתם. לדוגמה,
givenName. - מפעיל
- בדיקה שמבוצעת על הנתונים כדי לספק התאמה. לדוגמה, האופרטור
:בודק אם מאפיין טקסט מכיל ערך. - ערך
- התוכן של המאפיין שנבדק. לדוגמה,
Jane.
כדי לחפש בכמה שדות בשאילתה, מוסיפים כל פסקה של חיפוש, מופרדת ברווח. הפעולה היא AND מרומז.
שדות
| שדה | סוג הערך | אופרטורים | תיאור |
|---|---|---|---|
| לא צוין | מחרוזת | השוואה לערך בעמודה givenName, familyName או email. |
|
name |
מחרוזת | =, : |
הערך המשורשר של givenName ו-familyName. |
email |
מחרוזת | =, :, :{PREFIX}* |
כתובות האימייל של המשתמש, כולל כתובות אימייל חלופיות. |
givenName |
מחרוזת | =, :, :{PREFIX}* |
השם הפרטי של המשתמש. |
familyName |
מחרוזת | =, :, :{PREFIX}* |
שם המשפחה של המשתמש. |
isAdmin |
בוליאני | = |
האם למשתמש יש הרשאות סופר-אדמין. |
isDelegatedAdmin |
בוליאני | = |
האם למשתמש יש הרשאות אדמין מואצל. |
isSuspended |
בוליאני | = |
האם החשבון של המשתמש מושעה. |
isArchived |
בוליאני | = |
האם החשבון של המשתמש הועבר לארכיון. |
im |
מחרוזת | =, : |
מזהה רשת ההודעות המיידיות. |
externalId |
מחרוזת | =, : |
ערך המזהה החיצוני. |
manager |
מחרוזת | = |
כתובת האימייל של המנהל של המשתמש, באופן ישיר או בשרשרת הניהול. |
managerId |
מחרוזת | = |
המזהה של חשבון הניהול של המשתמש, ישירות או דרך שרשרת הניהול. |
directManager |
מחרוזת | = |
כתובת האימייל של המנהל הישיר של המשתמש. |
directManagerId |
מחרוזת | = |
המזהה של המנהל הישיר של המשתמש. |
address |
מחרוזת | : |
תואם לכל שדות הכתובות. |
addressPoBox |
מחרוזת | =, : |
תא דואר. |
addressExtended |
מחרוזת | =, : |
כתובת מורחבת, למשל כתובת שכוללת אזור משנה. |
addressStreet |
מחרוזת | =, : |
כתובת רחוב. |
addressLocality |
מחרוזת | =, : |
העיירה או העיר שמוגדרות בכתובת. |
addressRegion |
מחרוזת | =, : |
קיצור של מחוז או מדינה. |
addressPostalCode |
מחרוזת | =, : |
מיקוד. |
addressCountry |
מחרוזת | =, : |
מדינה. |
orgName |
מחרוזת | =, : |
שם הארגון. |
orgTitle |
מחרוזת | =, : |
התפקיד של המשתמש בארגון. |
orgDepartment |
מחרוזת | =, : |
מחלקה בארגון. |
orgDescription |
מחרוזת | =, : |
תיאור של הארגון. |
orgCostCenter |
מחרוזת | =, : |
מרכז העלויות של הארגון. |
phone |
מחרוזת | = |
מספר הטלפון של המשתמש. |
orgUnitPath |
מחרוזת | = |
הנתיב המלא של יחידה ארגונית. ההגדרה הזו תואמת לכל שרשראות היחידות הארגוניות שמתחת ליעד. לדוגמה, 'orgUnitPath=/' מחזירה את כל המשתמשים בארגון. אפשר להשתמש בשדה הזה רק כשviewType=admin_view. |
isEnrolledIn2Sv |
בוליאני | = |
האם משתמש רשום לאימות דו-שלבי. |
isEnforcedIn2Sv |
בוליאני | = |
האם נאכף על המשתמש אימות דו-שלבי. |
schemaName.fieldName |
? | ? | מאפיין משתמש מותאם אישית, שמפנה לסכימה ולשם השדה שלו. המאפיין indexed של השדה חייב להיות מוגדר כ-true. |
סוגי ערכים
| סוג הערך | סכימה מקבילה fieldType | הערות |
|---|---|---|
| מחרוזת | STRING, EMAIL, PHONE |
אם השאילתה מכילה רווח לבן, צריך להקיף אותה במירכאות בודדות '. כדי להשתמש במירכאות בודדות בשאילתות, צריך להוסיף לפני כל מירכאה את התו \', לדוגמה 'Valentine\'s Day'. |
| בוליאני | BOOL |
הערך חייב להיות true או false. תומך רק באופרטור =. |
| number | INT64, DOUBLE |
חובה להשתמש בנקודה בתור מפריד עשרוני, ואסור להשתמש במפריד אלפים. לדוגמה: 150430.25. |
| תאריך | DATE |
התאריך צריך להיות בפורמט YYYY-MM-DD, לדוגמה 2001-02-15. |
אופרטורים
| מפעיל | סוגי ערכים נתמכים | הערות |
|---|---|---|
= |
מחרוזת, ערך בוליאני, מספר, תאריך | השדה והערך זהים בדיוק. לדוגמה, givenName=Jane תואם לכל המשתמשים עם המאפיין givenName "Jane", אבל לא "Jane Ann". נתמך ברוב השדות של מחרוזות (ראו למעלה). |
: |
מחרוזת | השדה מכיל את כל המילים בערך, לפי הסדר. לדוגמה, שאילתה עם givenName:Jane מתאימה למשתמשים עם ערכי givenName של "Jane" ו-"Jane Ann", אבל לא ל-"Janet". שאילתה עם כמה מילים לחיפוש 'givenName:Mary Ann' תתאים לערכים "Mary Ann Evans" ו-"Sarah Mary Ann", אבל לא ל-"Ann Mary". נתמך ברוב השדות של מחרוזות (ראו למעלה). |
:{PREFIX}* |
מחרוזת | השדה מתחיל בערך. לדוגמה, שאילתה עם givenName:Jane* מתאימה למשתמשים עם ערכי givenName של "Jane", "Jane Ann" ו-"Janet", אבל לא "Sarah Jane". האפשרות הזו נתמכת רק בקבוצה מוגבלת של שדות מחרוזת (ראו למעלה). אין תמיכה במאפיינים מותאמים אישית. |
:[{MIN},{MAX}] |
number, date | השדה נמצא בטווח. כדי שתהיה התאמה, הערך בשדה צריך להיות גדול מ-{MIN} או שווה לו וקטן מ-{MAX}. כדי לתמוך באופרטור הזה, במאפייני מספרים בהתאמה אישית צריך לציין numericIndexingSpec. |
> |
number, date | השדה גדול מהערך. כדי לתמוך באופרטור הזה, במאפייני מספרים בהתאמה אישית צריך לציין numericIndexingSpec. |
>= |
number, date | הערך בשדה גדול מהערך או שווה לו. כדי לתמוך באופרטור הזה, במאפייני מספרים בהתאמה אישית צריך לציין numericIndexingSpec. |
< |
number, date | הערך בשדה קטן מהערך. כדי לתמוך באופרטור הזה, במאפייני מספרים בהתאמה אישית צריך לציין numericIndexingSpec. |
<= |
number, date | הערך בשדה קטן מהערך או שווה לו. כדי לתמוך באופרטור הזה, במאפייני מספרים בהתאמה אישית צריך לציין numericIndexingSpec. |
דוגמאות
כל השאילתות משתמשות בשיטה users.list, שיש לה בקשת HTTP שדומה לזו (הוספנו מעברי שורה כדי שיהיה קל יותר לקרוא):
GET https://admin.googleapis.com/admin/directory/v1/users?domain=DOMAIN_NAME&query=QUERY_PARAMETERS
חיפוש משתמש לפי שם
הבדיקה של שדה השאילתה name מתבצעת על הערך המשורשר של givenName ושל familyName. שאילתה לגבי name='Jane' לא מחזירה תוצאות למשתמש עם givenName='Jane' ו-familyName='Smith'.
name='Jane Smith'
חיפוש משתמשים עם givenName או familyName שמכילים ערך
name:'Jane'
חיפוש משתמשים שתואמים לקידומת של כתובת אימייל
email:admin*
חיפוש של כל הסופר-אדמינים
isAdmin=true
חיפוש משתמשים עם orgTitles שמכיל את המחרוזת Manager
orgTitle:Manager
חיפוש משתמשים עם מנהל משותף בשרשרת הדיווח שלהם
manager='janesmith@example.com'
חיפוש משתמשים עם אותו מנהל ישיר
directManager='bobjones@example.com'
חיפוש משתמשים במדינה מסוימת
addressCountry='Sweden'
חיפוש משתמשים בארגון ספציפי
orgName='Human Resources'
חיפוש מנהלים בארגון ספציפי
orgName=Engineering orgTitle:Manager
חיפוש מאפייני משתמש מותאמים אישית
חיפוש של כל העובדים שעובדים על פרויקט מסוים
EmploymentData.projects:'GeneGnomes'
חיפוש של כל העובדים במיקום ספציפי
EmploymentData.location='Atlanta'
חיפוש של כל העובדים ברמה 7 ומעלה
EmploymentData.jobLevel>=7
חיפוש של כל העובדים עם רמות תפקיד שגדולות או שוות ל-5 וקטנות מ-8
EmploymentData.jobLevel:[5,8]
חיפוש של כל העובדים שרשומים לאימות דו-שלבי
isEnrolledIn2Sv=true
חיפוש של כל העובדים שהאימות הדו-שלבי נאכף לגביהם
isEnforcedIn2Sv=true