fix(admin_audit): Listen to the right events

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
pull/48548/head
Côme Chilliet 2024-10-03 10:56:42 +07:00
parent 6c14c933eb
commit 015c5efdb5
No known key found for this signature in database
GPG Key ID: A3E2F658B28C760A
2 changed files with 9 additions and 55 deletions

@ -8,12 +8,11 @@ declare(strict_types=1);
namespace OCA\AdminAudit\Actions; namespace OCA\AdminAudit\Actions;
use OC\Files\Node\NonExistingFile; use OC\Files\Node\NonExistingFile;
use OCP\Files\Events\Node\BeforeNodeDeletedEvent;
use OCP\Files\Events\Node\BeforeNodeReadEvent; use OCP\Files\Events\Node\BeforeNodeReadEvent;
use OCP\Files\Events\Node\BeforeNodeRenamedEvent; use OCP\Files\Events\Node\BeforeNodeRenamedEvent;
use OCP\Files\Events\Node\BeforeNodeWrittenEvent;
use OCP\Files\Events\Node\NodeCopiedEvent; use OCP\Files\Events\Node\NodeCopiedEvent;
use OCP\Files\Events\Node\NodeCreatedEvent; use OCP\Files\Events\Node\NodeCreatedEvent;
use OCP\Files\Events\Node\NodeDeletedEvent;
use OCP\Files\Events\Node\NodeRenamedEvent; use OCP\Files\Events\Node\NodeRenamedEvent;
use OCP\Files\Events\Node\NodeWrittenEvent; use OCP\Files\Events\Node\NodeWrittenEvent;
use OCP\Files\InvalidPathException; use OCP\Files\InvalidPathException;
@ -28,10 +27,9 @@ use Psr\Log\LoggerInterface;
class Files extends Action { class Files extends Action {
private array $renamedNodes = []; private array $renamedNodes = [];
/** /**
* Logs file read actions * Logs file read actions
*
* @param BeforeNodeReadEvent $event
*/ */
public function read(BeforeNodeReadEvent $event): void { public function read(BeforeNodeReadEvent $event): void {
try { try {
@ -55,8 +53,6 @@ class Files extends Action {
/** /**
* Logs rename actions of files * Logs rename actions of files
*
* @param BeforeNodeRenamedEvent $event
*/ */
public function beforeRename(BeforeNodeRenamedEvent $event): void { public function beforeRename(BeforeNodeRenamedEvent $event): void {
try { try {
@ -72,8 +68,6 @@ class Files extends Action {
/** /**
* Logs rename actions of files * Logs rename actions of files
*
* @param NodeRenamedEvent $event
*/ */
public function afterRename(NodeRenamedEvent $event): void { public function afterRename(NodeRenamedEvent $event): void {
try { try {
@ -101,8 +95,6 @@ class Files extends Action {
/** /**
* Logs creation of files * Logs creation of files
*
* @param NodeCreatedEvent $event
*/ */
public function create(NodeCreatedEvent $event): void { public function create(NodeCreatedEvent $event): void {
try { try {
@ -128,8 +120,6 @@ class Files extends Action {
/** /**
* Logs copying of files * Logs copying of files
*
* @param NodeCopiedEvent $event
*/ */
public function copy(NodeCopiedEvent $event): void { public function copy(NodeCopiedEvent $event): void {
try { try {
@ -154,14 +144,12 @@ class Files extends Action {
/** /**
* Logs writing of files * Logs writing of files
*
* @param BeforeNodeWrittenEvent $event
*/ */
public function write(BeforeNodeWrittenEvent $event): void { public function write(NodeWrittenEvent $event): void {
$node = $event->getNode(); $node = $event->getNode();
try { try {
$params = [ $params = [
'id' => $node instanceof NonExistingFile ? null : $node->getId(), 'id' => $node->getId(),
'path' => mb_substr($node->getInternalPath(), 5), 'path' => mb_substr($node->getInternalPath(), 5),
]; ];
} catch (InvalidPathException|NotFoundException $e) { } catch (InvalidPathException|NotFoundException $e) {
@ -181,36 +169,10 @@ class Files extends Action {
); );
} }
/**
* Logs update of files
*
* @param NodeWrittenEvent $event
*/
public function update(NodeWrittenEvent $event): void {
try {
$params = [
'id' => $event->getNode()->getId(),
'path' => mb_substr($event->getNode()->getInternalPath(), 5),
];
} catch (InvalidPathException|NotFoundException $e) {
\OCP\Server::get(LoggerInterface::class)->error(
'Exception thrown in file update: ' . $e->getMessage(), ['app' => 'admin_audit', 'exception' => $e]
);
return;
}
$this->log(
'File with id "%s" updated: "%s"',
$params,
array_keys($params)
);
}
/** /**
* Logs deletions of files * Logs deletions of files
*
* @param NodeDeletedEvent $event
*/ */
public function delete(NodeDeletedEvent $event): void { public function delete(BeforeNodeDeletedEvent $event): void {
try { try {
$params = [ $params = [
'id' => $event->getNode()->getId(), 'id' => $event->getNode()->getId(),

@ -38,12 +38,11 @@ use OCP\Authentication\TwoFactorAuth\TwoFactorProviderChallengeFailed;
use OCP\Authentication\TwoFactorAuth\TwoFactorProviderChallengePassed; use OCP\Authentication\TwoFactorAuth\TwoFactorProviderChallengePassed;
use OCP\Console\ConsoleEvent; use OCP\Console\ConsoleEvent;
use OCP\EventDispatcher\IEventDispatcher; use OCP\EventDispatcher\IEventDispatcher;
use OCP\Files\Events\Node\BeforeNodeDeletedEvent;
use OCP\Files\Events\Node\BeforeNodeReadEvent; use OCP\Files\Events\Node\BeforeNodeReadEvent;
use OCP\Files\Events\Node\BeforeNodeRenamedEvent; use OCP\Files\Events\Node\BeforeNodeRenamedEvent;
use OCP\Files\Events\Node\BeforeNodeWrittenEvent;
use OCP\Files\Events\Node\NodeCopiedEvent; use OCP\Files\Events\Node\NodeCopiedEvent;
use OCP\Files\Events\Node\NodeCreatedEvent; use OCP\Files\Events\Node\NodeCreatedEvent;
use OCP\Files\Events\Node\NodeDeletedEvent;
use OCP\Files\Events\Node\NodeRenamedEvent; use OCP\Files\Events\Node\NodeRenamedEvent;
use OCP\Files\Events\Node\NodeWrittenEvent; use OCP\Files\Events\Node\NodeWrittenEvent;
use OCP\Group\Events\GroupCreatedEvent; use OCP\Group\Events\GroupCreatedEvent;
@ -194,17 +193,10 @@ class Application extends App implements IBootstrap {
} }
); );
$eventDispatcher->addListener(
BeforeNodeWrittenEvent::class,
function (BeforeNodeWrittenEvent $event) use ($fileActions): void {
$fileActions->write($event);
}
);
$eventDispatcher->addListener( $eventDispatcher->addListener(
NodeWrittenEvent::class, NodeWrittenEvent::class,
function (NodeWrittenEvent $event) use ($fileActions): void { function (NodeWrittenEvent $event) use ($fileActions): void {
$fileActions->update($event); $fileActions->write($event);
} }
); );
@ -216,8 +208,8 @@ class Application extends App implements IBootstrap {
); );
$eventDispatcher->addListener( $eventDispatcher->addListener(
NodeDeletedEvent::class, BeforeNodeDeletedEvent::class,
function (NodeDeletedEvent $event) use ($fileActions): void { function (BeforeNodeDeletedEvent $event) use ($fileActions): void {
$fileActions->delete($event); $fileActions->delete($event);
} }
); );