חיפוש משתמשים

אפשר לחפש משתמשים שתואמים למאפיינים מסוימים באמצעות השיטה users.list() של Directory API. השיטה הזו מקבלת את הפרמטר query, שהוא שאילתת חיפוש שמשלבת סעיף חיפוש אחד או יותר. כל סעיף חיפוש מורכב מ-3 חלקים:

שדה
מאפיין משתמש שבוצע עבורו חיפוש. לדוגמה: givenName.
מפעיל
בדיקה שמתבצעת על הנתונים כדי לספק התאמה. לדוגמה, האופרטור : בודק אם מאפיין טקסט מכיל ערך.
תמורה לכסף
תוכן המאפיין שנבדק. לדוגמה: Jane.

כדי לחפש כמה שדות בשאילתה, מוסיפים כל תנאי חיפוש ומפרידים ביניהם ברווח. הפעולה היא AND משתמע.

שדות

שדה סוג הערך אופרטורים תיאור
לא צוין מחרוזת אפשר להשוות אותו לערך בעמודות givenName, familyName או email.
name מחרוזת =, : הערך המשורשר של givenName ו-familyName.
email מחרוזת =, :, :{PREFIX}* כתובות האימייל של המשתמש, כולל כתובות אימייל חלופיות.
givenName מחרוזת =, :, :{PREFIX}* השם הפרטי או השם הפרטי של המשתמש.
familyName מחרוזת =, :, :{PREFIX}* שם המשפחה או שם המשפחה של המשתמש.
isAdmin boolean = האם למשתמש יש הרשאות של משתמש-על.
isDelegatedAdmin boolean = האם למשתמש יש הרשאות אדמין?
isSuspended boolean = האם חשבון המשתמש מושעה.
isArchived boolean = האם חשבון המשתמש מועבר לארכיון.
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 boolean = האם המשתמש רשום לאימות דו-שלבי.
isEnforcedIn2Sv boolean = האם אימות דו-שלבי נאכף על המשתמש.
schemaName.fieldName ? ? מאפיין משתמש מותאם אישית, שהסכימה ושם השדה שלו מפנים אליו. חובה להגדיר בשדה את המאפיין indexed כ-true.

סוגי ערכים

סוג הערך fieldType של הסכימה המקבילה הערות
מחרוזת STRING,‏ EMAIL,‏ PHONE מוקף במירכאות יחידות ' אם השאילתה מכילה רווח לבן. השתמשו בתו בריחה (escape) במירכאות יחידות בשאילתות עם המילה \', לדוגמה 'Valentine\'s Day'.
boolean BOOL הערך חייב להיות true או false. יש תמיכה רק באופרטור =.
מספר INT64, DOUBLE חובה להשתמש בנקודה כמפריד עשרוני וללא מפריד אלפים. לדוגמה: 150430.25.
date DATE מצוין בפורמט YYYY-MM-DD, לדוגמה 2001-02-15.

אופרטורים

מפעיל סוגי ערכים נתמכים הערות
= string, boolean, number, date הערך בשדה ובערך תואמים בדיוק. לדוגמה, הפונקציה 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