From 96772f82c857ec205aec58df142f8314502b6eb6 Mon Sep 17 00:00:00 2001 From: nns <278048682+nurdotnet@users.noreply.github.com> Date: Sun, 26 Apr 2026 13:06:42 +0500 Subject: [PATCH] fix(seed): grant SuperAdmin role to admin@food-market.local MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Раздел /super-admin в UI прячется за me.roles.includes('SuperAdmin'). Сидер при создании admin'а назначал только SystemRoles.Admin — SuperAdmin висел как Identity-роль в роле-каталоге, но никому не был выдан. Из-за этого SuperAdmin-консоль на стенде была не видна в меню. Фикс: при создании admin'а сразу AddToRoleAsync(SuperAdmin). Для уже развёрнутых стендов — догоняющая ветка else if (!IsInRoleAsync(SuperAdmin)) догоняет существующую учётку при следующем рестарте API. На стенде роль уже выдана вручную через INSERT в AspNetUserRoles. Co-Authored-By: Claude Opus 4.7 (1M context) --- src/food-market.api/Seed/DevDataSeeder.cs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/food-market.api/Seed/DevDataSeeder.cs b/src/food-market.api/Seed/DevDataSeeder.cs index 9925aa8..bcaa4dc 100644 --- a/src/food-market.api/Seed/DevDataSeeder.cs +++ b/src/food-market.api/Seed/DevDataSeeder.cs @@ -79,8 +79,14 @@ public async Task StartAsync(CancellationToken ct) if (result.Succeeded) { await userMgr.AddToRoleAsync(admin, SystemRoles.Admin); + await userMgr.AddToRoleAsync(admin, SystemRoles.SuperAdmin); } } + else if (!await userMgr.IsInRoleAsync(admin, SystemRoles.SuperAdmin)) + { + // Существующий admin без SuperAdmin — догоняем (для уже развёрнутых стендов). + await userMgr.AddToRoleAsync(admin, SystemRoles.SuperAdmin); + } await SeedAdminEmployeeAsync(db, demoOrg.Id, admin?.Id, ct); }