food-market/src/food-market.api
nns 2691b7d78b
Some checks are pending
CI / POS (WPF, Windows) (push) Waiting to run
CI / Backend (.NET 8) (push) Successful in 45s
CI / Web (React + Vite) (push) Successful in 39s
Docker API / Build + push API (push) Successful in 1m8s
Docker Web / Build + push Web (push) Successful in 32s
Docker API / Deploy API on stage (push) Successful in 18s
Docker Web / Deploy Web on stage (push) Successful in 12s
feat(employees): бейдж «Владелец» + блокировка удаления с объяснением
Жалоба юзера: «нажимаю удалить владельца магазина — диалог "удалить
сотрудника?" — нажимаю — ничего не происходит». Раньше кнопка «Удалить»
для Owner была доступна, на сервере отвечала 403 с понятным сообщением,
но фронт ошибку не ловил — модалка зависала.

— EmployeeDto теперь возвращает isOwner (Org.AccountOwnerUserId ==
  Employee.UserId) и isSelf (UserId текущего залогиненного юзера).
  List + Get обновлены: подгружают AccountOwnerUserId и текущий sub
  из JWT, проставляют флаги в проекции.

— Таблица сотрудников: рядом с ФИО владельца — бейдж «Владелец»
  (amber-100/800).

— Кнопка «Удалить» в модалке редактирования:
  · disabled для Owner и для self с tooltip-объяснением;
  · клик по disabled-кнопке через onClick-handler показывает спец-
    модалку: «Нельзя удалить владельца магазина — сначала передайте
    управление другому пользователю. Организация не может остаться
    без владельца. Удалить или деактивировать саму организацию может
    только Супер-администратор платформы.»;
  · self-delete объясняется отдельным текстом (Настройки → Аккаунт →
    Покинуть организацию);
  · обычное удаление — confirm с именем сотрудника и пояснением что
    это soft-delete (деактивация).
  · 403/любая ошибка от сервера ловится в try/catch и показывается
    в той же модалке «Не удалось удалить» — больше не «ничего не
    происходит».

Smoke: API эмплоя возвращает isOwner=true,isSelf=false для Owner'а в
override-режиме SuperAdmin'а.
2026-04-27 18:58:08 +05:00
..
Background feat(api): recalc-retail endpoint + 30-day reference price refresh job 2026-04-25 21:03:44 +05:00
Controllers feat(employees): бейдж «Владелец» + блокировка удаления с объяснением 2026-04-27 18:58:08 +05:00
Infrastructure/Tenancy fix(tenancy): SuperAdmin override должен применять tenant filter выбранной орги 2026-04-26 15:55:04 +05:00
Properties fix: pin API dev port to 5081 (match Vite proxy config) 2026-04-21 15:37:05 +05:00
Seed feat(super-admin): настраиваемый retention period для архивных орг 2026-04-26 17:59:24 +05:00
appsettings.Development.json Phase 0: project scaffolding and end-to-end auth 2026-04-21 13:59:13 +05:00
appsettings.json feat(deploy): Phase 6 — публичный сайт на food-market.zat.kz, админка на app. 2026-04-26 19:17:48 +05:00
food-market.api.csproj Phase 0: project scaffolding and end-to-end auth 2026-04-21 13:59:13 +05:00
Program.cs fix(auth): закрыть критические дыры — orphan login, self-delete, owner-delete, override-баннер 2026-04-27 09:28:18 +05:00