BUG-023: PIN-код не отображается в карточке сотрудника

Описание

При создании сотрудника с PIN-кодом — PIN сохраняется (bcrypt-хэш в БД), но не отображается в карточке просмотра сотрудника. Пользователь не может убедиться что PIN задан.

Шаги воспроизведения

  1. Залогиниться как ip@erp.local
  2. Создать сотрудника с PIN-кодом (например 1111)
  3. Открыть карточку сотрудника /employees/:id
  4. PIN-код нигде не показан

Ожидаемое поведение

В карточке сотрудника (вкладка «Общая информация») — поле PIN-код: Задан (или •••• или 1111 — зависит от решения по безопасности). Если не задан — Не задан.

PIN хранится как bcrypt-хэш

Бэкенд не может вернуть оригинальный PIN (хэш необратим). Поэтому фронт может отображать только факт наличия: Задан / Не задан. Или •••• как placeholder.

Фактическое поведение

Поле PIN-код не отображается в карточке просмотра. Нет никакой индикации что PIN задан или нет.

Анализ

Бэкенд

GET /employees/{id} response — скорее всего не возвращает информацию о наличии PIN. Поле pin_hash хранится в БД но не маппится в EmployeeResponse.

Решение: добавить поле has_pin: boolean в EmployeeResponse (true если pin_hash IS NOT NULL). Не возвращать сам хэш или оригинал.

Фронтенд

ViewPage не отображает PIN-инфо. Нужно добавить строку в блок «Основные данные»:

| PIN-код | Задан ✅ / Не задан |

Затронутые сервисы

СервисПроблема
User ServiceEmployeeResponse не содержит has_pin
Admin WebViewPage не отображает PIN-статус