|
Some checks are pending
Auto-tag / Create date-tag (push) Waiting to run
CI / Backend (.NET 8) (push) Waiting to run
CI / Web (React + Vite) (push) Waiting to run
CI / POS (WPF, Windows) (push) Waiting to run
Docker API / Build + push API (push) Waiting to run
Docker API / Deploy API on stage (push) Blocked by required conditions
- Сервер: Employee.PinHash (PBKDF2, миграция Phase36); POST
/api/organization/employees/{id}/pin — админ задаёт/снимает PIN (4–6 цифр,
уникален среди активных сотрудников на пересекающихся точках). Кастомный
OpenIddict-грант grant_type=pin (retail_point_id + pin): находит кассира,
привязанного к точке, по PIN и выдаёт токены. Брутфорс-защита — in-memory по
точке (5 неверных → блок 5 мин). Клиент-сидер досоздаёт gt:pin существующим
клиентам (без пересоздания). Пароль остаётся запасным.
- Касса: PIN-пад на зарегистрированном устройстве (маскированный ввод, 0–9/⌫/
Войти), переключение на вход по логину; AuthService.PinLoginAsync.
- Тесты: unit PinHasher (9), integration (3): вход по PIN выдаёт рабочий токен;
5 неверных → блок; дубль PIN на точке → 409. + скриншот PIN-пада в галерее.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
||
|---|---|---|
| .. | ||
| Admin | ||
| Auth | ||
| Catalog | ||
| Common | ||
| Dashboard | ||
| Inventory | ||
| Loyalty | ||
| Money | ||
| Organizations | ||
| Pos | ||
| Promotions | ||
| Purchases | ||
| Reports | ||
| Sales | ||
| Search | ||
| SuperAdmin | ||
| Telegram | ||
| Uploads | ||
| AuthForgotPasswordController.cs | ||
| AuthorizationController.cs | ||
| AuthSignupController.cs | ||
| FeedbackController.cs | ||
| MeAccountController.cs | ||
| MeSessionsController.cs | ||
| QuickLoginController.cs | ||
| TwoFactorController.cs | ||
| WhatsNewController.cs | ||