Skip to content

Система контроля доступа

Nikita Melnikov edited this page Mar 16, 2018 · 1 revision

Система принимает запросы от турникетов и в зависимости от условий, описанных ниже, разрешает или запрещает открытие турникета.

Турникет отправляет запросы на сервер в случае, когда пользователь приложил к нему персональный ключ. Запрос состоит из следующих данных:

  • ID ключа
  • Дата
  • Тип события: Вход или Выход

Условием, разрешающим открытие турникета, является наличие в базе данных разрешения для ID ключа или группы ключей, в которую входит этот ключ.

Задачи:

  1. Сервер должен научиться принимать запросы и всегда отвечать Доступ разрешен
  2. Добавление базы данных, которая хранит разрешения для ключей
  3. При получения запроса, сервер должен отвечать Доступ разрешен / Доступ не разрешен в зависимости от наличия разрешений для ключа
  4. Управление разрешениями. Сервер должен научиться принимать запросы для добавления / удаления разрешений для ключей
  5. Добавление групп ключей. Если есть разрешение для группы, значит есть разрешение для всех ключей
  6. Добавление исключений для групп. Если есть разрешение для группы, но есть исключение разрешения для ключа, то доступ закрыт
  7. Запись в базу всех запросов на вход / Выход
  8. Выгрузка данных по запросам на вход / выход
  9. Выгрузка отчета о ключах, которые в течение времени T совершили более N неуспешных попыток входа
  10. Система контроля времени. Сервер должен научиться подсчитывать время пребывания сотрудника на работе на основании данных по открытию git loтурникетов.