fix(seed): grant SuperAdmin role to admin@food-market.local
Some checks are pending
CI / POS (WPF, Windows) (push) Waiting to run
CI / Backend (.NET 8) (push) Successful in 43s
CI / Web (React + Vite) (push) Successful in 42s
Docker API / Build + push API (push) Successful in 46s
Docker API / Deploy API on stage (push) Successful in 17s

Раздел /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) <noreply@anthropic.com>
This commit is contained in:
nns 2026-04-26 13:06:42 +05:00
parent 94dbb5b235
commit 96772f82c8

View file

@ -79,8 +79,14 @@ public async Task StartAsync(CancellationToken ct)
if (result.Succeeded) if (result.Succeeded)
{ {
await userMgr.AddToRoleAsync(admin, SystemRoles.Admin); 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); await SeedAdminEmployeeAsync(db, demoOrg.Id, admin?.Id, ct);
} }