אפשר לחפש משתמשים שתואמים למאפיינים מסוימים באמצעות השיטה 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 |
מחרוזת | =, : |
מזהה רשת ה-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}] |
מספר, תאריך | השדה נמצא בטווח. כדי להתאים, הערך בשדה חייב להיות גדול מ-{MIN} או שווה לו וקטן מ-{MAX}. כדי לתמוך באופרטור הזה, מאפייני מספרים מותאמים אישית חייבים לציין numericIndexingSpec. |
> |
מספר, תאריך | השדה גדול מהערך. כדי לתמוך באופרטור הזה, מאפייני מספרים מותאמים אישית חייבים לציין numericIndexingSpec. |
>= |
מספר, תאריך | השדה גדול מהערך או שווה לו. כדי לתמוך באופרטור הזה, מאפייני מספרים מותאמים אישית חייבים לציין numericIndexingSpec. |
< |
מספר, תאריך | השדה קטן מהערך. כדי לתמוך באופרטור הזה, מאפייני מספרים מותאמים אישית חייבים לציין numericIndexingSpec. |
<= |
מספר, תאריך | השדה קטן מהערך או שווה לו. כדי לתמוך באופרטור הזה, מאפייני מספרים מותאמים אישית חייבים לציין numericIndexingSpec. |
דוגמאות
כל השאילתות משתמשות ב-method 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 שמכיל את 'מנהל'
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