Files
Ghassen kefi 03b51ed1ae feat(admin_audit): add stable operation identifier to audit log entries
Every audit log entry now carries a machine-readable "operation" field
(e.g. "files.file.read") in its data, next to the human-readable message.
Log consumers can filter on it instead of matching message text, which
may change between releases.

The names are defined once in the new OCA\AdminAudit\Operation enum.
Operations passed by other apps through CriticalActionPerformedEvent are
written as given.

Refs nextcloud-gmbh/governance#199

Assisted-by: ClaudeCode:claude-opus-5-5
Signed-off-by: Ghassen kefi <ghassen.kefi.dev@gmail.com>
2026-10-06 15:56:05 +02:00

32 lines
885 B
PHP

<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\AdminAudit\Tests;
use OCA\AdminAudit\Operation;
use OCP\Log\Audit\CriticalActionPerformedEvent;
use PHPUnit\Framework\Attributes\DataProvider;
use Test\TestCase;
class OperationTest extends TestCase {
public static function operationProvider(): array {
return array_map(static fn (Operation $operation): array => [$operation], Operation::cases());
}
/**
* The app's own operations follow the format enforced for operations from other apps.
*/
#[DataProvider('operationProvider')]
public function testOperationFormat(Operation $operation): void {
$event = new CriticalActionPerformedEvent('', [], false, $operation->value);
$this->assertSame($operation->value, $event->getOperation());
}
}