fix(superadmin): change-owner требует reason ≥ 10 символов

Смена владельца организации писала reason в журнал аудита, но проверяла лишь
его непустоту — короткие/мусорные причины («ok») проходили. PlatformSettings
для SMTP уже требует ≥10 символов; приводим change-owner к той же планке
(ТЗ 2.8: «Reason < 10 символов → 400»), чтобы журнал аудита оставался
осмысленным.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
nns 2026-05-26 11:53:32 +05:00
parent 68ce968021
commit 01568baf4f

View file

@ -234,7 +234,8 @@ public async Task<IActionResult> ChangeOwner(Guid id, [FromBody] ChangeOwnerRequ
{ {
var o = await _db.Organizations.IgnoreQueryFilters().FirstOrDefaultAsync(x => x.Id == id, ct); var o = await _db.Organizations.IgnoreQueryFilters().FirstOrDefaultAsync(x => x.Id == id, ct);
if (o is null) return NotFound(); if (o is null) return NotFound();
if (string.IsNullOrWhiteSpace(req.Reason)) return BadRequest(new { error = "Reason required." }); if (string.IsNullOrWhiteSpace(req.Reason) || req.Reason.Trim().Length < 10)
return BadRequest(new { error = "Причина смены владельца обязательна (≥ 10 символов) — она пишется в журнал аудита." });
var user = await _userMgr.FindByIdAsync(req.NewOwnerUserId.ToString()); var user = await _userMgr.FindByIdAsync(req.NewOwnerUserId.ToString());
if (user is null || user.OrganizationId != o.Id) if (user is null || user.OrganizationId != o.Id)
return BadRequest(new { error = "Пользователь не найден или не принадлежит этой организации." }); return BadRequest(new { error = "Пользователь не найден или не принадлежит этой организации." });