Концепция: «Супер администратор» — платформенная Identity-роль SuperAdmin. «Администратор» — организационная роль внутри Employee (IsSystem=true в EmployeeRole). Они НЕ должны дублироваться у одного юзера. - Сидер: admin@food-market.local получает только Identity-роль SuperAdmin. Догоняющая ветка для существующих стендов: если есть Identity-роль Admin — RemoveFromRoleAsync. На стенде AspNetUserRoles почищен SQL'ом. - AppLayout: translateRoles() переводит SuperAdmin → «Супер администратор», скрывает Identity-роль Admin (org-уровень показывается через Employee/Role, не через Identity). - EmployeeRolesPage: клик по строке системной роли → alert «Системная роль, изменения недоступны». Edit-модалка для системных была частично defensive (disabled чекбоксы Phase 2c), теперь точка входа закрыта целиком. Кастомные роли — без изменений. EmployeeRole.IsSystem поле уже было — миграция не нужна. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| food-market.api | ||
| food-market.application | ||
| food-market.domain | ||
| food-market.infrastructure | ||
| food-market.pos | ||
| food-market.pos.core | ||
| food-market.shared | ||
| food-market.web | ||