API для управления пользователями¶
API-запросы для управления пользователями могут потребоваться для интеграции с биллингом или при создании собственного приложения/веб-интерфейса для Watcher. Например, если оператор связи создает Организации, пресеты и пользователей из интерфейса Watcher, то в биллинге скорее всего нужно будет реализовать запрос информации о том, какие пользователи созданы, в какие Организации добавлены и какие права им назначены. Если биллинг является управляющей системой, то нужно реализовать запросы на создание, изменение и удаление пользователей, назначение им тех или иных прав.
Дополнительную информацию об интеграции с биллингом см. на странице Интеграция в существующую систему биллинга. Также см. информацию об ограничении прав на доступ к камерам в папке на странице API для управления папками.
В этом разделе приводятся примеры API-запросов для работы с пользователями. Полный список параметров запросов и ответов см. по ссылке.
Для авторизации запросов можно использовать ключи различных типов. В данном разделе используется ключ x-vsaas-session: это значит, что у пользователя, от имени которого выполняются запросы, должны быть права на выполнение соответствующих действий. Подробнее о типах ключей см. Способы авторизации API-запроса
Создание пользователя в Организации¶
Если у вас есть список пользователей в формате csv, можете импортировать всех пользователей разом, как описано на странице Импорт пользователей по API.
Если вы добавляете пользователей по одному, используйте запрос
POST URL_ВАШЕГО_WATCHER/vsaas/api/v2/users?trace=sql
Обязательные параметры:
- login (string) — имя пользователя, с которым он будет входить в приложение/веб-интерфейс Watcher.
- password (string) — пароль пользователя
Необязательные параметры, отвечающие за права пользователя на вкладке Параметры в интерфейсе (подробнее о правах см. Управление пользователями и их правами):
- organization_id (integer) — идентификатор Организации, в которую необходимо добавить пользователя. Если параметр не задан, пользователь будет добавлен в Организацию по умолчанию. При создании можно добавить пользователя только в одну Организацию. В дальнейшем можно добавить его в другие организации запросом, описанным ниже.
- can_edit_organizations (boolean) — может редактировать Организации, по умолчанию false.
- can_view_organizations (boolean) — может видеть Организации, по умолчанию false.
- enabled (boolean) — активен или нет, по умолчанию true
- is_admin (boolean) — является ли администратором Watcher, по умолчанию false.
- readonly (boolean) — только для чтения, по умолчанию false.
- max_sessions (integer) — максимальное количество сессий.
- can_edit_settings (boolean) — может редактировать настройки Watcher (на странице Настройки), по умолчанию false. В интерфейсе нет соответствующей настройки.
Другие необязательные параметры:
- apikey (string) — пользовательский ключ API, один из способов авторизации API-запроса. Подробнее см. Способы авторизации API-запроса
- locale (string) — язык интерфейса
- name (string) — имя пользователя
- note (string) — примечание
- notification_email (string (email)) — адрес электронной почты пользователя
- phone (string) — телефон пользователя
Пример
curl --request POST \
--url 'http://localhost/vsaas/api/v2/users?trace=sql' \
--header 'content-type: application/json' \
--header 'x-vsaas-session: <vsaas_session>' \
--data '{
"login": "test",
"password": "test",
"organization_id": 1
}'
Запрос вернет параметры созданного пользователя.
Обратите внимание, что в ответе возвращается массив Организаций.
{
"apikey": null,
"id": 17,
"can_view_organizations": false,
"max_sessions": null,
"name": null,
"locale": "",
"login": "test",
"external_id": null,
"organizations": [
1
],
"readonly": false,
"can_edit_organizations": false,
"note": null,
"is_admin": false,
"authorized_ip": null,
"phone": null,
"notification_email": null,
"monitoring": false,
"enabled": true,
"can_edit_settings": false,
"domain_id": 1
}
Список пользователей организации¶
Чтобы получить список пользователей в организации, используйте запрос
GET URL_ВАШЕГО_WATCHER/vsaas/api/v2/organizations/(идентификатор организации)/users
Пример
curl --request GET \
--url http://localhost/vsaas/api/v2/organizations/1/users \
--header 'x-vsaas-session: <vsaas_session>'
Запрос вернет некоторые общие параметры пользователей и их права в организации.
[
{
"notification_email": null,
"can_edit_organization_users": true,
"login": "Subscriber 1",
"can_edit_organization_plists": true,
"can_view_organization_stats": true,
"can_edit_organization_cameras": true,
"can_view_organization_plists": true,
"user_id": 14,
"folders_permissions": [
{
"folder_id": 1,
"can_view_dvr": true,
"dvr_depth_limit": 365,
"can_use_ptz": false,
"can_use_actions": false
},
{
"folder_id": 25,
"can_view_dvr": false,
"dvr_depth_limit": null,
"can_use_ptz": false,
"can_use_actions": false
}
]
},
{
"notification_email": null,
"can_edit_organization_users": false,
"login": "Subscriber 2",
"can_edit_organization_plists": false,
"can_view_organization_stats": false,
"can_edit_organization_cameras": false,
"can_view_organization_plists": false,
"user_id": 24,
"folders_permissions": []
}
]
Добавление пользователя в организацию¶
Чтобы добавить существующего пользователя в Организацию, отправьте запрос
POST URL_ВАШЕГО_WATCHER/vsaas/api/v2/organizations/(идентификатор организации)/users
Параметры запроса:
- user_id (integer) — обязательный параметр, идентификатор добавляемого пользователя
- login (string) — логин пользователя
- notification_email (string) — электронная почта пользователя
- can_view_organization_plists (boolean) — права на просмотр списков лиц Организаций
- can_edit_organization_plists (boolean) — права на редактирование списков лиц Организаций
- can_edit_organization_users (boolean) — права на редактирование пользователей
- can_edit_organization_cameras (boolean) — права на редактирование камер Организации
- can_view_organization_stats (boolean) — права на просмотр статистики
- folders_permissions (array) — список папок организации, к которым пользователю предоставлен доступ
Пример
curl --request POST \
--url http://localhost/vsaas/api/v2/organizations/1/users \
--header 'content-type: application/json' \
--header 'x-vsaas-session: <vsaas_session>' \
--data ' {
"user_id": 2,
"can_edit_organization_cameras": true
}'
Запрос вернет некоторые общие параметры пользователя и его права в организации.
{
"can_edit_organization_plists": false,
"can_edit_organization_users": false,
"user_id": 2,
"notification_email": null,
"can_edit_organization_cameras": true,
"can_view_organization_stats": false,
"folders_permissions": [],
"can_view_organization_plists": false,
"login": "test"
}
Просмотр прав одного пользователя¶
Чтобы просмотреть параметры пользователя, используйте запрос
GET URL_ВАШЕГО_WATCHER/vsaas/api/v2/organizations/(идентификатор организации)/users/(идентификатор пользователя)
Пример
curl --request GET \
--url http://localhost/vsaas/api/v2/organizations/1/users/2/ \
--header 'x-vsaas-session: <vsaas_session>'
Запрос вернет некоторые общие параметры пользователя и его права в организации, как в примере выше.
Изменение прав пользователя в организации¶
Чтобы изменить права пользователя в Организации, используйте запрос
PUT URL_ВАШЕГО_WATCHER/vsaas/api/v2/organizations/(идентификатор организации)/users/(идентификатор пользователя)
Параметры запроса такие же, как при добавлении существующего пользователя в Организацию. Можно отправить только те параметры, которые нужно изменить.
Пример
curl --request PUT \
--url http://localhost/vsaas/api/v2/organizations/1/users/2/ \
--header 'content-type: application/json' \
--header 'x-vsaas-session: <vsaas_session>' \
--data '{
"can_view_organization_stats": true,
"can_edit_organization_users": true,
"can_edit_organization_cameras": true
}'
Запрос вернет некоторые общие параметры пользователя и его новые права в организации, как в примере выше.
Удаление пользователя из Организации¶
Чтобы удалить пользователя из Организации, отправьте запрос
DELETE URL_ВАШЕГО_WATCHER/vsaas/api/v2/organizations/(идентификатор организации)/users/(идентификатор пользователя)
curl --request DELETE \
--url http://localhost/vsaas/api/v2/organizations/1/users/2/ \
--header 'x-vsaas-session: <vsaas_session>'
В случае успешного удаления Watcher вернет {"success":true}