Breadcrumbs

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


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

PATCH  /api/v1/billing/user/manage

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

JSON
{
    "login": "test@mail.com",
    "password": "qweasdzxc",
    "status": "active",
    "billing_info": {
        "billing_id": "123123123",
        "billing_extra": []
    },
    "billing_properties": [
        {
            "type": "phone",
            "value": "+80283289362"
        }
    ],
    "permissions_to_attach": [
        "archives-show",
        "archives-download"
    ],
    "permissions_to_detach": [
        "archives-preview-download"
    ],
    "session_limits": {
        "intercom": 10,
        "cctv": 5
    }
}

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

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)».


rray session_limits – лимиты сессий

object array

int session_limits.cctv – количество сессий для модуля "Видеонаблюдение".


int session_limits.intercom – количество сессий для модуля "Домофон".


200  OK

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

JSON
{
    "id": 1,
    "login": "test@mail.com",
    "name": null,
    "type": "type_value",
    "status": "active",
    "created_at": "2023-05-02T10:18:50.000000Z",
    "updated_at": "2023-05-02T10:18:50.000000Z",
    "deleted_at": null,
    "can_update_password": false,
    "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": "string",
    "password": "string",
    "status": "string",
    "billing_info": [],
    "properties": "string",
    "permissions_to_attach": [],
    "permissions_to_detach": [],
    "session_limits": {
        "intercom": 0,
        "cctv": 0
    },
    "session_limits.intercom": "void",
    "session_limits.cctv": "void"
}'


PHP
PHP
$data = array (
  'login' => 'string',
  'password' => 'string',
  'status' => 'string',
  'billing_info' => 
  array (
  ),
  'properties' => 'string',
  'permissions_to_attach' => 
  array (
  ),
  'permissions_to_detach' => 
  array (
  ),
  'session_limits' => 
  array (
    'intercom' => 0,
    'cctv' => 0,
  ),
  'session_limits.intercom' => 'void',
  'session_limits.cctv' => 'void',
);
$context = stream_context_create([
	'ssl'=>['verify_peer' => false],
	'http' => [
		'method' => 'PATCH',
		'header' => "Content-Type: application/json\r
Accept: application/json",
		'content'=>json_encode($data)
	]
]);
$result = file_get_contents('https://your-domain/api/v1/billing/user/manage', false, $context);