Skip to main content
Skip table of contents

Oбнoвление пoльзователя

Метод и параметры

PATCH /api/v1/billing/user/manage

Метод используется для обновления пользователя внешней системой.

JSON
{
    "login": "test@mail.com",
    "password": "qweasdzxc",
    "can_update_password": true,
    "status": "active",
    "billing_info": {
        "billing_id": "123123123",
        "billing_extra": []
    },
    "properties": [
        {
            "type": "phone",
            "value": "+80283289362"
        }
    ],
    "permissions_to_attach": [
        "archives-show",
        "archives-download"
    ],
    "permissions_to_detach": [
        "archives-preview-download"
    ]
}

Параметры метода

string login – обязательный параметр. Этот параметр представляет собой уникальный идентификатор, который используется пользователем для доступа и аутентификации в системе видеонаблюдения. Может быть любой строкой символов и необязательно должен соответствовать формату электронной почты.

Логин автоматически генерируется и предоставляется внешней системой заказчика. Он поступает через механизм обратного вызова (callback) после того, как пользователь успешно зарегистрирован в системе заказчика.


string password – необязательный параметр, максимальная длина 100 символов. Пароль автоматически генерируется и предоставляется внешней системой заказчика и поступает через механизм обратного вызова (callback). Для максимальной безопасности, все пароли хранятся в базе данных VMS исключительно в хешированном виде.


boolean can_update_password – необязательный параметр и отвечает за разрешение пользователю изменять свой пароль.


string status – необязательный параметр. Статус пользователя. Возможные значения:

  • active – пользователь в статусе «Активен» и имеет доступ к системе видеонаблюдения. Значение устанавливается по умолчанию.

  • blocked – пользователю в статусе «Заблокирован», доступ к системе видеонаблюдения запрещён.


arraybilling_info – необязательный параметр. Объект, содержащий дополнительную информацию о пользователе, получаемую из внешней биллинговой системы, например, идентификаторы (ID) или метаданные. billing_extra используется для передачи технических данных из биллинга (например, внутренние идентификаторы, метки, дополнительные поля).


arrayproperties – необязательный параметр, максимум 10 элементов. Это массив объектов, содержащих пользовательские атрибуты, которые могут быть использованы как во внешней системе, так и в логике платформы видеонаблюдения. Эти атрибуты могут включать, например, контактные данные (телефон, email, адрес и т.д.) и другие характеристики, релевантные для пользователя. properties позволяет гибко добавлять любые дополнительные атрибуты пользователя, не привязанные строго к биллинговой логике внешней системы. Например, email для авторизации в системе видеонаблюдения. Каждый элемент должен содержать следующее:

  • type: обязательный параметр, максимальная длина – 100 символов. Тип атрибута (например, phone, email).

  • value: обязательный параметр, максимальная длина – 255 символов. Значение атрибута (например, +80283289362).


array permissions_to_attach – необязательный параметр. Список разрешений для добавления пользователю. Список разрешений смотрите на странице «Разрешения пользователя (user, admin)».

При создании пользователя разрешения назначаются по умолчанию в зависимости от типа пользователя (разрешения по умолчанию задаются в системных настройках: default_permissions_<тип_пользователя> в таблице system_settings).


array permissions_to_detach – необязательный параметр. Список разрешений, которые следует отозвать у пользователя. Список разрешений смотрите на странице «Разрешения пользователя (user, admin)».

200 OK

Возвращает объект пользователя

JSON
{
    "id": 1,
    "login": "test@mail.com",
    "name": null,
    "type": "type_value",
    "status": "active",
    "permissions": [
        {
            "id": 1,
            "name": "layouts-index"
        },
        {
            "id": 2,
            "name": "layouts-store"
        }
    ],
    "created_at": "2023-05-02T10:18:50.000000Z",
    "updated_at": "2023-05-02T10:18:50.000000Z",
    "deleted_at": null,
    "can_update_password": true,
    "billing_properties": [
        {
            "type": "phone",
            "value": "+80283289362"
        }
    ]
}

422 Unprocessable Entity

Возвращает JSON объект с ошибкой.

Детально в разделе Валидация.

JSON
{
    "message": "Сообщение отсутствует",
    "errors": {
        "any_key": [
            "Детальная информация об ошибке"
        ]
    }
}

cURL
BASH
curl -k --request PATCH \
    --url 'https://your-domain/api/v1/billing/user/manage' \
    --header 'Content-Type: application/json' \
    --header 'Accept: application/json' \
    --data '{
    "login": "test@mail.com",
    "password": "qweasdzxc",
    "can_update_password": true,
    "status": "active",
    "billing_info": {
        "billing_id": "123123123",
        "billing_extra": []
    },
    "properties": [
        {
            "type": "phone",
            "value": "+80283289362"
        }
    ],
    "permissions_to_attach": [
        "archives-show",
        "archives-download"
    ],
    "permissions_to_detach": [
        "archives-preview-download"
    ]
}'

PHP
PHP
$data = array(
    'login' => 'test@mail.com',
    'password' => 'qweasdzxc',
    'can_update_password' => true,
    'status' => 'active',
    'billing_info' => array(
        'billing_id' => '123123123',
        'billing_extra' => array()
    ),
    'properties' => array(
        array(
            'type' => 'phone',
            'value' => '+80283289362'
        )
    ),
    'permissions_to_attach' => array(
        'archives-show',
        'archives-download'
    ),
    'permissions_to_detach' => array(
        'archives-preview-download'
    )
);

$context = stream_context_create([
    'ssl' => ['verify_peer' => false],
    'http' => [
        'method' => 'PATCH',
        'header' => "Content-Type: application/json\r\nAccept: application/json",
        'content' => json_encode($data)
    ]
]);

$result = file_get_contents('https://your-domain/api/v1/billing/user/manage', false, $context);
JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.