Поиск пользователей

Вы можете искать пользователей, соответствующих определенным атрибутам, с помощью метода users.list() 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 .

Типы значений

Тип значения Эквивалентное поле Schema fieldType Примечания
нить STRING , EMAIL , PHONE Если запрос содержит пробелы, заключите его в одинарные кавычки ' . Одинарные кавычки в запросах экранируйте с помощью \' , например, 'Valentine\'s Day' .
логический BOOL Должен иметь значение true или false . Поддерживается только оператор = .
число INT64 , DOUBLE В качестве десятичного разделителя необходимо использовать точку, а разделитель тысяч не используется, например, 150430.25 .
дата DATE Указывается в формате ГГГГ-ММ-ДД, например, 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 .

Примеры

Все запросы используют метод 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]

Найдите всех сотрудников, зарегистрированных в двухэтапной системе vVerification.

isEnrolledIn2Sv=true

Найдите всех сотрудников, у которых включена двухфакторная аутентификация.

isEnforcedIn2Sv=true