Для самостоятельной интеграции СКУД с Promobot ThermoControl необходимо:

1. Docker-контейнер, через который будет осуществляться связь с сервером СКУД. 

Требования к контейнеру:

 - Docker image проекта совмеcтимый с Docker 19

 - Инструкция по сборке контейнера

 - Весь софт должен быть совместим с Ubuntu 16.04

Контейнер может быть предоставлен также в собранном виде.


2. Определить в каком виде хранятся номера карт в базе данных СКУД (например: B9B7A666)

3. Подобрать прошивку для считывателя IronLogic Z2 USB и параметры Promobot ThermoControl, при которых будет происходит считывание карты в виде, в котором они хранятся в базе данных СКУД.

4. Реализовать внутри контейнера следующие методы:

- Получение пользователя по ключу: /api/key/person/

- Блокировка пользователя по ключу: /api/block-person-by-key/

- Разблокировка пользователя по ключу: /api/unblock-person-by-key/


Описание методов с примерами:

1. Блокировка всех ключей пользователя по ключу 


/api/block-person-by-key/{key}
(/api/block-person-by-key/EA01234567890101) 


{
    "error": 0,
    "data": {},
    "message": ""
}


2. Разблокировка всех ключей пользователя по ключу 

/api/unblock-person-by-key/{key} 
(/api/unblock-person-by-key/EA01234567890101)


{
    "error": 0,
    "data": {},
    "message": ""
}


3. Информация о пользователе по ключу


/api/key/person/{key} 
(/api/key/person/EA01234567890101)



Ответ: 

Объект, содержащий информацию о пользователе data:

МетодРасшифровка
LastName Фамилия 
FirstName Имя 
MiddleName Отчество 
Address Адрес 
BirthDate Дата рождения
Company Наименование организации
Phone Контактный телефон
HomePhone Домашний телефон
Id Уникальный идентификатор
DocumentType Тип документа
DocumentNumber Номер документа
DocumentSerials Серия документа
Sex Пол
Birthplace Место рождения
EmailList Список e-mail адресов сотрудника
IsInBlackList Признак того, что сотрудник находится в черном списке
IsDismissed Признак того, что сотрудник уволен
BlackListComment Причина занесения сотрудника в черный список
DismissedComment Причина увольнения сотрудника



{
"error": 0,
"data": {
    "Id": 34,
    "LastName": "Иванов",
    "FirstName": "Иван",
    "MiddleName": "Иванович",
    "Address": "Пермь",
    "BirthDate": "1986-01-19 00:00:00+05:00",
    "Company": "ЮНИКОРН",
    "Phone": null,
    "HomePhone": "79194800200",
    "DocumentType": 0,
    "DocumentNumber": null,
    "DocumentSerials": null,
    "Sex": 1,
    "Birthplace": "Белдяшки",
    "EmailList": "",
    "IsInBlackList": false,
    "IsDismissed": true,
    "BlackListComment": null,
    "DismissedComment": "Тест"
    },
"message": ""
}


Контейнер будет установлен непосредственно на терминале Promobot ThermoControl, методы должны быть доступны для вызова на localhost. Также контейнер должен иметь конфигурационный файл для настройки связи с сервером СКУД.


ACS - Access Control and management System

To do the integration you need to:

  1. Get Docker-container through which communication with the ACS server will be carried out.
    Container requirements:
    Docker project image compatible with docker 19
    - Container assembly manual
    - All software must be compatible with ubuntu 16.04
    The container can also be provided in assembled form.
  2. Define the format of card numbers in the ACS database (e.g. B9B7A666)
  3. Select firmware for IronLogic Z2 USB reader and Promobot ThermoControl parameters, at which the card will be read in the form in which they are stored in the ACS database.
  4. Implement the following methods inside the container:
    Getting a user by key: /api/key/person/
    Blocking a user by key: /api/block-person-by-key/
    Unlocking a user by key: /api/unblock-person-by-key/

Methods description with examples:

  1. Locking all user keys by key

    /api/block-person-by-key/{key}
    (/api/block-person-by-key/EA01234567890101) 




    {
        "error": 0,
        "data": {},
        "message": ""
    }


  2. Unlocking all user keys by key

    /api/unblock-person-by-key/{key} 
    (/api/unblock-person-by-key/EA01234567890101)




    {
        "error": 0,
        "data": {},
        "message": ""
    }



  3. User information by key

    /api/key/person/{key} 
    (/api/key/person/EA01234567890101)




    Response:
    data - an object containing information about the user:


    Method
    LastName
    FirstName
    MiddleName
    Address
    BirthDate
    Company
    Phone
    HomePhone
    Id
    DocumentType
    DocumentNumber
    DocumentSerials
    Sex
    Birthplace
    EmailList
    IsInBlackList
    IsDismissed
    BlackListComment
    DismissedComment


    {
    "error": 0,
    "data": {
        "Id": 34,
        "LastName": "Smith",
        "FirstName": "John",
        "MiddleName": "",
        "Address": "Paris",
        "BirthDate": "1986-01-19 00:00:00+05:00",
        "Company": "Unicorn",
        "Phone": null,
        "HomePhone": "79194800200",
        "DocumentType": 0,
        "DocumentNumber": null,
        "DocumentSerials": null,
        "Sex": 1,
        "Birthplace": "Berlin",
        "EmailList": "",
        "IsInBlackList": false,
        "IsDismissed": true,
        "BlackListComment": null,
        "DismissedComment": "this is some test comment"
        },
    "message": ""
    }



    The container will be installed directly on the Promobot ThermoControl terminal, the methods must be available to be called on localhost. Also, the container must have a configuration file for setting up communication with the ACS server.