Skip to content

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}