{employee.username}
{updateMutation.isError ? ( @@ -121,7 +124,7 @@ export function QuotaEditor({ employee, onClose }: QuotaEditorProps) { {showPassword ? "Скрыть" : "Показать"}- Смена пароля завершает все текущие сессии сотрудника. + Смена пароля завершает все текущие сессии {who}.
diff --git a/tradein-mvp/frontend/src/components/trade-in/trade-in.css b/tradein-mvp/frontend/src/components/trade-in/trade-in.css index b4bc3ec7..a7c6e9e0 100644 --- a/tradein-mvp/frontend/src/components/trade-in/trade-in.css +++ b/tradein-mvp/frontend/src/components/trade-in/trade-in.css @@ -2849,6 +2849,19 @@ html, body { overflow-x: clip; } color: var(--danger, #b3261e); } +/* Пометка «менеджер» рядом с логином в списке admin'а: список смешанный + (сотрудники + менеджеры организаций), без метки строки неразличимы. */ +.team-role-badge { + margin-left: 6px; + padding: 2px 6px; + border-radius: 4px; + font-size: 10px; + font-weight: 500; + white-space: nowrap; + background: var(--accent-soft, #e0edff); + color: var(--accent, #0d6fd6); +} + .team-quota-unlimited { color: var(--fg-secondary, #5b6066); font-size: 11px; diff --git a/tradein-mvp/frontend/src/lib/team-api.ts b/tradein-mvp/frontend/src/lib/team-api.ts index cbe43b1a..3f60ec10 100644 --- a/tradein-mvp/frontend/src/lib/team-api.ts +++ b/tradein-mvp/frontend/src/lib/team-api.ts @@ -36,6 +36,13 @@ export interface QuotaStatus { export interface Employee { id: number; username: string; + /** + * Кем является строка в списке. Бэкенд отдаёт менеджеров ТОЛЬКО актору-admin + * (`app/api/v1/team.py`, `_LIST_EMPLOYEES_ALL_SQL`) — менеджер в своём списке + * видит по-прежнему только `"employee"`. Строк `role: "admin"` этот API не + * отдаёт никогда, поэтому в юнионе их нет. + */ + role: "employee" | "manager"; display_name: string | null; org_name: string | null; email: string | null;