Удаление строки в формах 1/2/4 не проверяло владельца: любой исполнитель мог удалить чужую строку мгновенно, без подтверждения. - v3.del_budget_line (миграция 0050): не-admin может удалить только budget_line, где created_by совпадает с current_user_id() (проверка и для обычных листов, и для AHR_RENT/UTILITY/SECURITY — через created_by связанной budget_line). Нарушение -> role_not_allowed: (403), по существующей конвенции PG_403_ERRORS. - RealtimeTable: кнопка «Удалить строку» теперь открывает ConfirmDeleteRowModal, реальное удаление — только после подтверждения. - Интеграционные тесты: новый исполнитель isp2 (fixture.sql) в том же org_unit, что и budget_form id=1 — проверяют 403 при чужой строке, 200 при своей и при удалении администратором. Issue: #249 (AURORA-1936, эпик AURORA-1876, Высокий приоритет) Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Generic single-database configuration.