fix(server): правки сервера, ника и комнат попадают в аудит
§11.5 требует, чтобы каждое мутирующее действие писалось в журнал сервера
с `actor.instance_admin=true`, но у PATCH /guilds/{id},
PATCH /guilds/{id}/members/{user_id} и у ручек комнат вызова `recordAudit`
не было: переименование сервера, смена ника, тайм-аут и создание, правка и
удаление комнаты не оставляли следа ни у владельца, ни у инстанс-админа.
- guild.update, member.update, member.timeout (в причине — срок тайм-аута),
channel.create, channel.update, channel.delete;
- Go-тест TestAuditCoversGuildMemberAndChannelChanges проверяет записи на
чужом сервере и флаг actor_instance_admin, а также что действие владельца
этим флагом не помечается;
- e2e 19b в instance-admin.spec.ts включён вместо test.fixme с диагностикой.
Проверки: go test -tags sqlite_fts5 -race -count=1 ./internal/... — ok;
make go-lint — 0 issues; живьём на стенде тест 19b проходит.
This commit is contained in:
@@ -671,14 +671,13 @@ test.describe('инстанс-админ: чужой сервер (§11.5, §7.1
|
||||
});
|
||||
|
||||
/**
|
||||
* Известный пробел §11.5: «каждое действие пишется в аудит» выполняется не для
|
||||
* всех мутаций. Переименование сервера, смена ника участника и создание,
|
||||
* правка и удаление комнаты не пишут запись в аудит ни администратору, ни
|
||||
* владельцу (в `internal/server/api_guilds.go` у этих ручек нет `recordAudit`).
|
||||
* Тест оставлен как fixme с точной диагностикой: когда записи появятся, его
|
||||
* достаточно раскомментировать.
|
||||
* Пробел §11.5 был закрыт правкой сервера: «каждое действие пишется в аудит»
|
||||
* раньше не выполнялось для переименования сервера, смены ника участника и
|
||||
* создания/правки/удаления комнаты — у этих ручек не было `recordAudit`
|
||||
* (`internal/server/api_guilds.go`). Теперь записи есть у владельца и у
|
||||
* инстанс-админа (с `actor_instance_admin=true`).
|
||||
*/
|
||||
test.fixme('19b. Аудит: переименование сервера, ник и комнаты тоже попадают в журнал', async ({
|
||||
test('19b. Аудит: переименование сервера, ник и комнаты тоже попадают в журнал', async ({
|
||||
playwright,
|
||||
}) => {
|
||||
const ownerApi = await apiAs(playwright, owner.state);
|
||||
|
||||
Reference in New Issue
Block a user