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

אפשר לחפש משתמשים שתואמים למאפיינים מסוימים באמצעות השיטה 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