Организация (Франшиза, ЮЛ, сотрудники, роли)
Структурные сущности: владельцы, юр.лица, сотрудники, роли.
Известно багов в зоне: 13 + 1 cross-cutting
6 Critical, 5 Major, 2 Minor. Подробности — inline ниже. Полный список: 04-known-bugs-index.
Франшизы (corporate vs individual)
- Тип
corporate— иерархия: главное ЮЛ + партнёры, раздел «Юр.лица» виден - Тип
individual— ИП-режим: одно главное ЮЛ, партнёров нет, раздел «Юр.лица» скрыт - Виджет «Юр.лица» на дашборде скрыт при
individual - POST /legal-entities
type=franchiseeприindividual→403 FRANCHISE_TYPE_INDIVIDUAL - Bootstrap новой франшизы — вручную через SQL (UI нет)
- Редактирование своей франшизы →
404после Save (BUG-006) - Карточка ЮЛ — вкладки «Информация»/«Сотрудники»/«Документы» не реагируют на клик (BUG-005)
Юридические лица — CRUD
- CRUD: создание, редактирование, soft delete (только если нет привязанных ТТ)
- Suspend/Resume — при suspend все ТТ снимаются с публикации, при resume не возвращаются автоматически
- Главное ЮЛ — одно
type=franchise, автостановится главным - Поиск по наименованию + ИНН одновременно (один inputbox)
- Фильтры по статусу и типу
- Создание формы — фокус теряется со строки после первого символа (BUG-002)
Юридические лица — валидация
- ИНН: 10 (ООО) или 12 (ИП) цифр + контрольная сумма
- ИНН — readonly после создания (нельзя менять)
- ИНН UNIQUE per franchise (WHERE deleted_at IS NULL)
- Дубликаты ИНН — ошибка, не молчаливое обновление
- КПП: 9 цифр (BUG-003 — валидация на латинице)
- ОГРН: 13 (ООО) или 15 (ИП) цифр
- БИК: 9 цифр — нет сообщений об ошибке (BUG-004)
- Расчётный/корр.счёт: 20 цифр — нет сообщений об ошибке (BUG-004)
- Телефон — нет сообщений об ошибке (BUG-004)
- Текст ошибок при невалидных данных — на латинице (BUG-X01)
Юридические лица — импорт xlsx (только corporate)
- Импорт из xlsx —
Unsupported Media Type(BUG-001) - Шаблон скачиваемый
- Preview с разделением валидных/ошибочных строк
- Скачивание ошибочных строк отдельным xlsx
- Дубликаты ИНН — отвергаются (ошибка в строке)
- Лимит 10 000 строк
- Прогресс-бар для больших файлов
Создание ЮЛ Франчайзи с владельцем (corporate only)
- Транзакционно: ЮЛ + employee + employee_roles в одной операции
- Блок «Владелец» — обязательные поля (имя, фамилия, email, опционально телефон/пароль)
- Блок «Права владельца» — режим «Полный доступ» / «Настроенные права»
- При «Настроенных правах» — создаётся скрытая роль с
owner_legal_entity_id - Минимум permissions:
pos.access,stores.read,employees.read(нельзя снять) - Модалка после создания — email + временный пароль с кнопкой «Скопировать»
- Soft delete ЮЛ → владелец деактивируется
- Восстановление ЮЛ → владелец реактивируется
Вкладка «Права» в карточке ЮЛ партнёра
- Переключение «Полный доступ» ↔ «Настроенные права»
- Матрица permissions (бэк-офис + POS)
- Применяется немедленно
- Владелец партнёра не видит вкладку у своего же ЮЛ
- При переключении — старая скрытая роль удаляется/новая создаётся
Сотрудники CRUD
- Создание (BUG-008 —
500 INTERNAL_ERROR) - Редактирование (имя, email, пароль, телефон, PIN, флаг «Курьер», роли с per-role ТТ)
- Поиск по ФИО (BUG-007 — не работает)
- Email UNIQUE per franchise_id
- PIN — 4 цифры, UNIQUE per ТТ (BUG-010 — дублируется в верхней строке и блоке)
- Деактивация / реактивация — статус active/inactive
- Деактивированный сотрудник — пункты «Редактировать»/«Реактивировать» в бургере неактивны (BUG-011)
- Все активные сессии завершаются при деактивации
- Юр.детали (ИНН, паспорт, СНИЛС, ВУ) — доступ только владельцам (ФЗ-152)
- Валидация полей (Имя, Фамилия, Пароль, Телефон, ТТ) — отсутствует (BUG-009)
- При создании с невалидными — ошибки на латинице (BUG-X01)
Роли и permissions
- CRUD пользовательских ролей (имя UNIQUE per franchise, case-insensitive, только среди не-hidden)
- Системная «Администратор» — нельзя удалить или изменить permissions, можно переименовать
- Скрытые роли владельцев партнёров — невидимы в общем списке (
owner_legal_entity_id IS NOT NULL) - Удаление роли — проверка
employee_roles→409 ROLE_IN_USE - Soft delete с восстановлением
- Не редактируется роль сотрудника с админа (BUG-012)
- Назначение нескольких ролей с разными per-role наборами ТТ (employee_role_stores)
- Permission catalog: 17 секций бэк-офиса × Read/Edit
- Manager → Юр.лица возвращает 403 (BUG-013)
Связано:
- Сервис: User Service (port 3002)
- BR: 1.4.4 Permission-based ролевая модель
- Specs: Юридические лица, Сотрудники, Роли
- Common: 01 RBAC Matrix, 02 Form Validation