From c6ece2adea76d89246c539a2a3308682e615419e Mon Sep 17 00:00:00 2001 From: nns <278048682+nurdotnet@users.noreply.github.com> Date: Wed, 6 May 2026 11:16:56 +0500 Subject: [PATCH] =?UTF-8?q?feat(roles):=20=D1=81=D0=B8=D1=81=D1=82=D0=B5?= =?UTF-8?q?=D0=BC=D0=BD=D0=B0=D1=8F=20=D1=80=D0=BE=D0=BB=D1=8C=20=E2=80=94?= =?UTF-8?q?=20read-only=20=D1=84=D0=BE=D1=80=D0=BC=D0=B0=20=D0=BF=D1=80?= =?UTF-8?q?=D0=B0=D0=B2=20=D0=B2=D0=BC=D0=B5=D1=81=D1=82=D0=BE=20alert?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Раньше клик по системной роли в списке выкидывал alert «Системная роль, изменения недоступны». Теперь открывается обычная модалка с правами, но: имя/описание disabled, все чекбоксы disabled, кнопка «Сохранить» скрыта (вместо неё «Закрыть»). Юзер видит ровно какие галки стоят у Администратора/Кладовщика/Кассира — это нужно как шаблон при создании кастомной роли. Также description страницы и заголовок модалки обновлены под новый смысл: системные = только просмотр; кастомные = полный CRUD. --- .../src/pages/EmployeeRolesPage.tsx | 31 +++++++++++++------ 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/src/food-market.web/src/pages/EmployeeRolesPage.tsx b/src/food-market.web/src/pages/EmployeeRolesPage.tsx index f34e71e..fd3a110 100644 --- a/src/food-market.web/src/pages/EmployeeRolesPage.tsx +++ b/src/food-market.web/src/pages/EmployeeRolesPage.tsx @@ -137,7 +137,7 @@ export function EmployeeRolesPage() { <> @@ -158,10 +158,8 @@ export function EmployeeRolesPage() { sortOrder={sortOrder} onSortChange={setSort} onRowClick={(r) => { - if (r.isSystem) { - alert('Системная роль, изменения недоступны.') - return - } + // Системные роли — показываем форму с правами в read-only. + // Все чекбоксы disabled, кнопка «Сохранить» скрыта (см. footer). setForm({ id: r.id, name: r.name, description: r.description ?? '', isSystem: r.isSystem, permissions: { ...blankPerms(), ...r.permissions }, @@ -235,7 +233,9 @@ export function EmployeeRolesPage() { setForm(null)} - title={form?.id ? `Редактировать роль${form.isSystem ? ' (системная)' : ''}` : 'Новая роль'} + title={form?.id + ? (form.isSystem ? `Системная роль «${form.name}» (только просмотр)` : `Редактировать роль «${form.name}»`) + : 'Новая роль'} width="max-w-2xl" footer={ <> @@ -249,19 +249,30 @@ export function EmployeeRolesPage() { Удалить )} - - + + {!form?.isSystem && ( + + )} } > {form && (
- setForm({ ...form, name: e.target.value })} /> + setForm({ ...form, name: e.target.value })} /> -