Za pomocą metody users.list() interfejsu Directory API możesz wyszukiwać użytkowników, którzy pasują do określonych atrybutów. Ta metoda akceptuje parametr query, który jest zapytaniem wyszukiwania zawierającym co najmniej 1 klauzulę wyszukiwania. Każda klauzula wyszukiwania składa się z 3 części:
- Pole
- Atrybut użytkownika, który jest wyszukiwany. Na przykład:
givenName. - Operator
- Test wykonywany na danych w celu zapewnienia dopasowania. Na przykład operator
:sprawdza, czy atrybut tekstowy zawiera wartość. - Wartość
- Treści atrybutu, który jest testowany. Na przykład:
Jane.
Aby wyszukać w zapytaniu wiele pól, dodaj każdą klauzulę wyszukiwania oddzieloną spacjami. Operacja jest domyślną operacją AND.
Pola
| Pole | Typ wartości | Operatory | Opis |
|---|---|---|---|
| Nie określono | ciąg znaków | Porównaj z wartością w givenName, familyName lub email. |
|
name |
ciąg znaków | =, : |
Wartość utworzona przez złączenie parametrów givenName i familyName. |
email |
ciąg znaków | =, :, :{PREFIX}* |
adresy e-mail użytkownika, w tym aliasy; |
givenName |
ciąg znaków | =, :, :{PREFIX}* |
Imię użytkownika. |
familyName |
ciąg znaków | =, :, :{PREFIX}* |
Nazwisko lub nazwa użytkownika. |
isAdmin |
wartość logiczna | = |
Określa, czy użytkownik ma uprawnienia superadministratora. |
isDelegatedAdmin |
wartość logiczna | = |
Czy użytkownik ma delegowane uprawnienia administratora. |
isSuspended |
wartość logiczna | = |
czy konto użytkownika jest zawieszone. |
isArchived |
wartość logiczna | = |
czy konto użytkownika jest zarchiwizowane. |
im |
ciąg znaków | =, : |
Identyfikator sieci do obsługi komunikatora. |
externalId |
ciąg znaków | =, : |
Wartość identyfikatora zewnętrznego. |
manager |
ciąg znaków | = |
Adres e-mail menedżera użytkownika, bezpośrednio lub wyżej w łańcuchu zarządzania. |
managerId |
ciąg znaków | = |
Identyfikator menedżera użytkownika, bezpośrednio lub w łańcuchu zarządzania. |
directManager |
ciąg znaków | = |
Adres e-mail bezpośredniego przełożonego użytkownika. |
directManagerId |
ciąg znaków | = |
Identyfikator bezpośredniego menedżera użytkownika. |
address |
ciąg znaków | : |
Dopasowuje wszystkie pola adresu. |
addressPoBox |
ciąg znaków | =, : |
Skrzynka pocztowa. |
addressExtended |
ciąg znaków | =, : |
Rozszerzony adres, np. zawierający podregion. |
addressStreet |
ciąg znaków | =, : |
Ulica i numer. |
addressLocality |
ciąg znaków | =, : |
Miasto lub miejscowość z adresu. |
addressRegion |
ciąg znaków | =, : |
Skrót nazwy prowincji lub stanu. |
addressPostalCode |
ciąg znaków | =, : |
Kod pocztowy. |
addressCountry |
ciąg znaków | =, : |
kraj, |
orgName |
ciąg znaków | =, : |
Nazwa organizacji. |
orgTitle |
ciąg znaków | =, : |
Tytuł użytkownika w organizacji. |
orgDepartment |
ciąg znaków | =, : |
Dział w organizacji. |
orgDescription |
ciąg znaków | =, : |
Opis organizacji. |
orgCostCenter |
ciąg znaków | =, : |
Centrum kosztów organizacji. |
phone |
ciąg znaków | = |
Numer telefonu użytkownika. |
orgUnitPath |
ciąg znaków | = |
Pełna ścieżka jednostki organizacyjnej. Dopasowuje wszystkie łańcuchy jednostek organizacyjnych podrzędnych do docelowej jednostki. Na przykład 'orgUnitPath=/' zwraca wszystkich użytkowników w organizacji. Z tego pola można korzystać tylko wtedy, gdy viewType=admin_view. |
isEnrolledIn2Sv |
wartość logiczna | = |
Określa, czy użytkownik korzysta z weryfikacji dwuetapowej. |
isEnforcedIn2Sv |
wartość logiczna | = |
Określa, czy weryfikacja dwuetapowa jest wymuszana na koncie użytkownika. |
schemaName.fieldName |
? | ? | Atrybut niestandardowy użytkownika, na który wskazuje jego schemat i nazwa pola. Właściwość indexed pola musi mieć wartość true. |
Typy wartości
| Typ wartości | Odpowiednik w schemacie fieldType | Uwagi |
|---|---|---|
| ciąg znaków | STRING, EMAIL, PHONE |
Jeśli zapytanie zawiera spacje, ująć je w cudzysłowie '. W zapytaniach należy stosować cudzysłów pojedynczy z użyciem znaku \', np. 'Valentine\'s Day'. |
| wartość logiczna | BOOL |
Wartość musi wynosić true lub false. Obsługuje tylko operator =. |
| liczba | INT64, DOUBLE |
Jako separatora dziesiętnego należy używać kropki, a nie separatora tysięcy, na przykład 150430.25. |
| data | DATE |
W formacie RRRR-MM-DD, np. 2001-02-15. |
Operatory
| Operator | Obsługiwane typy wartości | Uwagi |
|---|---|---|
= |
string, boolean, number, date | Pole i wartość dokładnie pasują do siebie. Na przykład reguła givenName=Jane pasuje do wszystkich użytkowników z atrybutem givenName o wartości "Jane", ale nie "Jane Ann". Obsługiwane w większości pól ciągu znaków (patrz wyżej). |
: |
ciąg znaków | Pole zawiera w wartości pełne słowa w kolejności. Na przykład zapytanie z wartością givenName:Jane pasuje do użytkowników z wartością givenName = "Jane" i "Jane Ann", ale nie "Janet". Zapytanie wielowyrazowe dotyczące 'givenName:Mary Ann' pasuje do wartości "Mary Ann Evans" i "Sarah Mary Ann", ale nie do "Ann Mary". Obsługiwane w większości pól ciągu znaków (patrz wyżej). |
:{PREFIX}* |
ciąg znaków | Pole zaczyna się od wartości. Na przykład zapytanie z wartością givenName:Jane* pasuje do użytkowników z wartością givenName = "Jane", "Jane Ann" = "Janet", ale nie "Sarah Jane". Obsługiwane tylko w przypadku ograniczonego zbioru pól ciągu znaków (patrz wyżej). Nieobsługiwane w przypadku atrybutów niestandardowych. |
:[{MIN},{MAX}] |
liczba, data | Pole mieści się w zakresie. Aby dopasowanie było możliwe, wartość pola musi być większa lub równa {MIN} i mniejsza niż {MAX}. Aby obsługiwać ten operator, niestandardowe atrybuty numeru muszą zawierać wartość numericIndexingSpec. |
> |
liczba, data | Pole jest większe niż wartość. Aby obsługiwać ten operator, niestandardowe atrybuty numeru muszą zawierać wartość numericIndexingSpec. |
>= |
liczba, data | Pole jest większe lub równe wartości. Aby obsługiwać ten operator, niestandardowe atrybuty numeru muszą zawierać wartość numericIndexingSpec. |
< |
liczba, data | Pole jest mniejsze niż wartość. Aby obsługiwać ten operator, niestandardowe atrybuty numeru muszą zawierać wartość numericIndexingSpec. |
<= |
liczba, data | Pole jest mniejsze lub równe wartości. Aby obsługiwać ten operator, niestandardowe atrybuty numeru muszą zawierać wartość numericIndexingSpec. |
Przykłady
Wszystkie zapytania używają metody users.list, która ma żądanie HTTP podobne do tego (przerwy w wierszach w celu ułatwienia czytelności):
GET https://admin.googleapis.com/admin/directory/v1/users?domain=DOMAIN_NAME&query=QUERY_PARAMETERS
Wyszukiwanie użytkownika według nazwy
Pole zapytania name jest testowane na podstawie wartości utworzonej przez złączenie wartości pól givenName i familyName. Zapytanie name='Jane' nie zwraca żadnych wyników dla użytkownika z adresem givenName='Jane' i familyName='Smith'.
name='Jane Smith'
Wyszukiwanie użytkowników na podstawie pola givenName LUB familyName zawierającego wartość
name:'Jane'
Wyszukiwanie użytkowników pasujących do prefiksu adresu e-mail
email:admin*
Wyszukiwanie wszystkich superadministratorów
isAdmin=true
Szukaj użytkowników, których orgTitles zawiera „Menedżer”
orgTitle:Manager
Wyszukiwanie użytkowników, którzy mają wspólnego menedżera w łańcuchu raportowania
manager='janesmith@example.com'
Wyszukiwanie użytkowników mających tego samego bezpośredniego menedżera
directManager='bobjones@example.com'
Wyszukiwanie użytkowników w danym kraju
addressCountry='Sweden'
Wyszukiwanie użytkowników w określonej organizacji
orgName='Human Resources'
Wyszukiwanie menedżerów w określonej organizacji
orgName=Engineering orgTitle:Manager
Wyszukiwanie niestandardowych atrybutów użytkowników
Wyszukiwanie wszystkich pracowników, którzy pracują nad konkretnym projektem
EmploymentData.projects:'GeneGnomes'
Wyszukiwanie wszystkich pracowników w określonej lokalizacji
EmploymentData.location='Atlanta'
Wyszukiwanie wszystkich pracowników powyżej poziomu stanowiska 7
EmploymentData.jobLevel>=7
Wyszukiwanie wszystkich pracowników o poziomie stanowiska >= 5 i < 8
EmploymentData.jobLevel:[5,8]
Wyszukiwanie wszystkich pracowników, którzy korzystają z weryfikacji dwuetapowej
isEnrolledIn2Sv=true
Wyszukiwanie wszystkich pracowników, którzy muszą korzystać z weryfikacji dwuetapowej
isEnforcedIn2Sv=true