food-market/src/food-market.api/Controllers
nns 6b959ac59d
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
feat(pos): быстрый вход кассира по PIN (grant_type=pin) + lockout
- Сервер: 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>
2026-10-08 09:38:36 +05:00
..
Admin feat(s32): MoySklad-импорт — upsert по external id, merge по barcode, skip archived, UOM-mapping 2026-10-04 23:22:14 +05:00
Auth feat(s20): Mapster + SSO scaffold + maintenance automation (7 пунктов) 2026-06-07 21:54:12 +05:00
Catalog feat(catalog): штрихкоды товара — добавление + весовые этикетки 2026-10-08 05:39:20 +05:00
Common feat(s29): [RequiresAdvancedMode] + гейтинг скрытых модулей (шаг 3/8) 2026-10-04 11:38:10 +05:00
Dashboard feat(s10): year-demo seeder + 4 dashboard виджета + week-stats 2026-06-06 01:03:36 +05:00
Inventory feat(inventory): фильтр остатков по группе товаров с вложенными 2026-10-08 05:39:37 +05:00
Loyalty feat(s29): [RequiresAdvancedMode] + гейтинг скрытых модулей (шаг 3/8) 2026-10-04 11:38:10 +05:00
Money fix(money): кассир открывает смену без доступа к модулю «Деньги» (403) 2026-10-08 08:28:36 +05:00
Organizations feat(pos): быстрый вход кассира по PIN (grant_type=pin) + lockout 2026-10-08 09:38:36 +05:00
Pos feat(pos): возврат по чеку — экран выбора позиций + защита от over-return 2026-10-08 09:16:48 +05:00
Promotions feat(s29): [RequiresAdvancedMode] + гейтинг скрытых модулей (шаг 3/8) 2026-10-04 11:38:10 +05:00
Purchases test(money): unit (MoneyMath 25) + integration (7 на Postgres) + MoneyMath refactor 2026-10-07 22:11:19 +05:00
Reports fix(reports): «сегодня/за день» считать по Asia/Almaty (UTC+5), а не по UTC 2026-10-08 02:10:11 +05:00
Sales fix(reports): «сегодня/за день» считать по Asia/Almaty (UTC+5), а не по UTC 2026-10-08 02:10:11 +05:00
Search feat(s10-3): глобальная Cmd+K палитра + GET /api/search/global 2026-06-06 01:20:05 +05:00
SuperAdmin feat(s29): [RequiresAdvancedMode] + гейтинг скрытых модулей (шаг 3/8) 2026-10-04 11:38:10 +05:00
Telegram feat(s29): [RequiresAdvancedMode] + гейтинг скрытых модулей (шаг 3/8) 2026-10-04 11:38:10 +05:00
Uploads perf(s14): индексы + N+1 fix + bundle -50% + WebP variants + pool + Hangfire timing 2026-06-07 13:21:39 +05:00
AuthForgotPasswordController.cs feat(s13): security headers + rate-limits + sensitive-ops audit + session revoke + Grafana 2026-06-07 12:30:10 +05:00
AuthorizationController.cs feat(pos): быстрый вход кассира по PIN (grant_type=pin) + lockout 2026-10-08 09:38:36 +05:00
AuthSignupController.cs fix(phone): серверная KZ-ФЛК на всех endpoint'ах принимающих phone 2026-05-08 01:05:48 +05:00
FeedbackController.cs feat(s17): onboarding wizard + help kb + feedback + diagnostic + whats-new 2026-06-07 17:04:26 +05:00
MeAccountController.cs feat(s13): security headers + rate-limits + sensitive-ops audit + session revoke + Grafana 2026-06-07 12:30:10 +05:00
MeSessionsController.cs feat(s13): security headers + rate-limits + sensitive-ops audit + session revoke + Grafana 2026-06-07 12:30:10 +05:00
QuickLoginController.cs feat(s30): /api/dev/quick-login/accounts — анонимный список для стенда (шаг 3/9) 2026-10-04 15:38:23 +05:00
TwoFactorController.cs feat(s13): security headers + rate-limits + sensitive-ops audit + session revoke + Grafana 2026-06-07 12:30:10 +05:00
WhatsNewController.cs feat(s17): onboarding wizard + help kb + feedback + diagnostic + whats-new 2026-06-07 17:04:26 +05:00