Add role management validation to prevent removal of the last admin
CI / Backend (build + test) (push) Successful in 1m20s
CI / Frontend (lint + typecheck + build) (push) Successful in 34s

- Introduced a new error, `CannotRemoveLastAdmin`, to handle attempts to downgrade the last admin user in the system.
- Updated `RoleService` to check the number of admin users before allowing a role change that would remove the last admin.
- Enhanced unit tests to verify the new behavior, ensuring that attempts to downgrade the last admin correctly propagate the failure.
- Updated API documentation to reflect the new validation logic and its implications for role management.
This commit is contained in:
Leonid Pershin
2026-07-14 23:53:20 +03:00
parent 940577d8cd
commit f14daa3df1
8 changed files with 312 additions and 2 deletions
@@ -17,4 +17,8 @@ public static class RoleErrors
"Roles.RoleInUse",
"Роль назначена пользователям — сначала переназначьте их."
);
public static readonly Error CannotRemoveLastAdmin = Error.Conflict(
"Roles.CannotRemoveLastAdmin",
"Нельзя снять роль admin с последнего администратора."
);
}