Skip to main content
Skip table of contents

Создание пользователя

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

POST /api/v1/billing/user/manage

JSON
{
    "login": "test@mail.com",
    "password": "qweasdzxc",
    "can_update_password": true,
    "type": "type_value",
    "billing_info": {
        "billing_id": "123123123",
        "billing_extra": []
    },
    "properties": [
        {
            "type": "phone",
            "value": "+80283289362"
        }
    ]
    "status": "active",
}

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

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

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


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


booleancan_update_password – необязательный параметр и отвечает за разрешение пользователю изменять свой пароль. Если не задан, система автоматически установит его значение как true, предоставляя пользователю право на изменение пароля.


stringtype – обязательный параметр, максимальная длина – 50 символов. Тип пользователя. Значение должно соответствовать одному из допустимых, указанных в конфигурационном файле cctv.user_types. Список допустимых значений задаётся специалистом, который осуществлял установку платформы. Для получения актуального списка типов необходимо обратиться к этому специалисту.

Обратите внимание, что значения special и subuser недопустимы – использование этих типов приведёт к ошибке.


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


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

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

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


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

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

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


Разрешения пользователя

При создании пользователя разрешения назначаются по умолчанию в зависимости от типа пользователя (разрешения по умолчанию задаются в системных настройках: default_permissions_<тип_пользователя> в таблице system_settings). Список разрешений смотрите на странице «Разрешения пользователя (user, admin)». Изменить список разрешений для пользователя возможно API-методом PATCH (детально в разделе «Обновление пользователя») или через интерфейс администратора системы видеонаблюдения.

Для получения дополнительной информации о конфигурации и настройках платформы, включая связанные переменные окружения, обратитесь к странице «Env переменные окружения».

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 POST \
	--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,
    "type": "type_value",
    "billing_info": {
        "billing_id": "123123123",
        "billing_extra": []
    },
    "status": "active",
    "properties": [
        {
            "type": "phone",
            "value": "+80283289362"
        }
    ]
}'
PHP
PHP
$data = array(
    'login' => 'test@mail.com',
    'password' => 'qweasdzxc',
    'can_update_password' => true,
    'type' => 'type_value',
    'billing_info' => array(
        'billing_id' => '123123123',
        'billing_extra' => array()
    ),
    'status' => 'active',
    'properties' => array(
        array(
            'type' => 'phone',
            'value' => '+80283289362'
        )
    )
);

$context = stream_context_create([
    'ssl' => ['verify_peer' => false],
    'http' => [
        'method' => 'POST',
        '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.