aboutsummaryrefslogtreecommitdiffstats
path: root/apps/admin_audit/lib
diff options
context:
space:
mode:
Diffstat (limited to 'apps/admin_audit/lib')
-rw-r--r--apps/admin_audit/lib/Actions/Action.php7
-rw-r--r--apps/admin_audit/lib/Actions/Files.php37
-rw-r--r--apps/admin_audit/lib/Actions/Versions.php10
-rw-r--r--apps/admin_audit/lib/AppInfo/Application.php13
-rw-r--r--apps/admin_audit/lib/Listener/AuthEventListener.php18
-rw-r--r--apps/admin_audit/lib/Listener/FileEventListener.php21
6 files changed, 51 insertions, 55 deletions
diff --git a/apps/admin_audit/lib/Actions/Action.php b/apps/admin_audit/lib/Actions/Action.php
index 2566025a8ce..acd415d82ea 100644
--- a/apps/admin_audit/lib/Actions/Action.php
+++ b/apps/admin_audit/lib/Actions/Action.php
@@ -37,11 +37,8 @@ class Action {
);
} else {
$this->logger->critical(
- sprintf(
- '$params["' . $element . '"] was missing. Transferred value: %s',
- print_r($params, true)
- ),
- ['app' => 'admin_audit']
+ '$params["' . $element . '"] was missing. Transferred value: {params}',
+ ['app' => 'admin_audit', 'params' => $params]
);
}
return;
diff --git a/apps/admin_audit/lib/Actions/Files.php b/apps/admin_audit/lib/Actions/Files.php
index 3993f1a76ee..7be4a7cd581 100644
--- a/apps/admin_audit/lib/Actions/Files.php
+++ b/apps/admin_audit/lib/Actions/Files.php
@@ -10,7 +10,6 @@ namespace OCA\AdminAudit\Actions;
use OC\Files\Node\NonExistingFile;
use OCP\Files\Events\Node\BeforeNodeDeletedEvent;
use OCP\Files\Events\Node\BeforeNodeReadEvent;
-use OCP\Files\Events\Node\BeforeNodeRenamedEvent;
use OCP\Files\Events\Node\NodeCopiedEvent;
use OCP\Files\Events\Node\NodeCreatedEvent;
use OCP\Files\Events\Node\NodeRenamedEvent;
@@ -26,9 +25,6 @@ use Psr\Log\LoggerInterface;
* @package OCA\AdminAudit\Actions
*/
class Files extends Action {
-
- private array $renamedNodes = [];
-
/**
* Logs file read actions
*/
@@ -37,7 +33,7 @@ class Files extends Action {
$node = $event->getNode();
$params = [
'id' => $node instanceof NonExistingFile ? null : $node->getId(),
- 'path' => mb_substr($node->getInternalPath(), 5),
+ 'path' => $node->getPath(),
];
} catch (InvalidPathException|NotFoundException $e) {
Server::get(LoggerInterface::class)->error(
@@ -55,29 +51,14 @@ class Files extends Action {
/**
* Logs rename actions of files
*/
- public function beforeRename(BeforeNodeRenamedEvent $event): void {
- try {
- $source = $event->getSource();
- $this->renamedNodes[$source->getId()] = $source;
- } catch (InvalidPathException|NotFoundException $e) {
- Server::get(LoggerInterface::class)->error(
- 'Exception thrown in file rename: ' . $e->getMessage(), ['app' => 'admin_audit', 'exception' => $e]
- );
- return;
- }
- }
-
- /**
- * Logs rename actions of files
- */
public function afterRename(NodeRenamedEvent $event): void {
try {
$target = $event->getTarget();
- $originalSource = $this->renamedNodes[$target->getId()];
+ $source = $event->getSource();
$params = [
'newid' => $target->getId(),
- 'oldpath' => mb_substr($originalSource->getInternalPath(), 5),
- 'newpath' => mb_substr($target->getInternalPath(), 5),
+ 'oldpath' => $source->getPath(),
+ 'newpath' => $target->getPath(),
];
} catch (InvalidPathException|NotFoundException $e) {
Server::get(LoggerInterface::class)->error(
@@ -101,7 +82,7 @@ class Files extends Action {
try {
$params = [
'id' => $event->getNode()->getId(),
- 'path' => mb_substr($event->getNode()->getInternalPath(), 5),
+ 'path' => $event->getNode()->getPath(),
];
} catch (InvalidPathException|NotFoundException $e) {
Server::get(LoggerInterface::class)->error(
@@ -127,8 +108,8 @@ class Files extends Action {
$params = [
'oldid' => $event->getSource()->getId(),
'newid' => $event->getTarget()->getId(),
- 'oldpath' => mb_substr($event->getSource()->getInternalPath(), 5),
- 'newpath' => mb_substr($event->getTarget()->getInternalPath(), 5),
+ 'oldpath' => $event->getSource()->getPath(),
+ 'newpath' => $event->getTarget()->getPath(),
];
} catch (InvalidPathException|NotFoundException $e) {
Server::get(LoggerInterface::class)->error(
@@ -151,7 +132,7 @@ class Files extends Action {
try {
$params = [
'id' => $node->getId(),
- 'path' => mb_substr($node->getInternalPath(), 5),
+ 'path' => $node->getPath(),
];
} catch (InvalidPathException|NotFoundException $e) {
Server::get(LoggerInterface::class)->error(
@@ -177,7 +158,7 @@ class Files extends Action {
try {
$params = [
'id' => $event->getNode()->getId(),
- 'path' => mb_substr($event->getNode()->getInternalPath(), 5),
+ 'path' => $event->getNode()->getPath(),
];
} catch (InvalidPathException|NotFoundException $e) {
Server::get(LoggerInterface::class)->error(
diff --git a/apps/admin_audit/lib/Actions/Versions.php b/apps/admin_audit/lib/Actions/Versions.php
index c856c994d3f..b3fdefd011d 100644
--- a/apps/admin_audit/lib/Actions/Versions.php
+++ b/apps/admin_audit/lib/Actions/Versions.php
@@ -8,16 +8,6 @@ declare(strict_types=1);
namespace OCA\AdminAudit\Actions;
class Versions extends Action {
- public function rollback(array $params): void {
- $this->log('Version "%s" of "%s" was restored.',
- [
- 'version' => $params['revision'],
- 'path' => $params['path']
- ],
- ['version', 'path']
- );
- }
-
public function delete(array $params): void {
$this->log('Version "%s" was deleted.',
['path' => $params['path']],
diff --git a/apps/admin_audit/lib/AppInfo/Application.php b/apps/admin_audit/lib/AppInfo/Application.php
index de45bb9bcdd..63a1d065bc8 100644
--- a/apps/admin_audit/lib/AppInfo/Application.php
+++ b/apps/admin_audit/lib/AppInfo/Application.php
@@ -27,6 +27,7 @@ use OCA\AdminAudit\Listener\GroupManagementEventListener;
use OCA\AdminAudit\Listener\SecurityEventListener;
use OCA\AdminAudit\Listener\SharingEventListener;
use OCA\AdminAudit\Listener\UserManagementEventListener;
+use OCA\Files_Versions\Events\VersionRestoredEvent;
use OCP\App\Events\AppDisableEvent;
use OCP\App\Events\AppEnableEvent;
use OCP\App\Events\AppUpdateEvent;
@@ -34,13 +35,13 @@ use OCP\AppFramework\App;
use OCP\AppFramework\Bootstrap\IBootContext;
use OCP\AppFramework\Bootstrap\IBootstrap;
use OCP\AppFramework\Bootstrap\IRegistrationContext;
+use OCP\Authentication\Events\AnyLoginFailedEvent;
use OCP\Authentication\TwoFactorAuth\TwoFactorProviderChallengeFailed;
use OCP\Authentication\TwoFactorAuth\TwoFactorProviderChallengePassed;
use OCP\Console\ConsoleEvent;
use OCP\EventDispatcher\IEventDispatcher;
use OCP\Files\Events\Node\BeforeNodeDeletedEvent;
use OCP\Files\Events\Node\BeforeNodeReadEvent;
-use OCP\Files\Events\Node\BeforeNodeRenamedEvent;
use OCP\Files\Events\Node\NodeCopiedEvent;
use OCP\Files\Events\Node\NodeCreatedEvent;
use OCP\Files\Events\Node\NodeRenamedEvent;
@@ -105,9 +106,11 @@ class Application extends App implements IBootstrap {
$context->registerEventListener(UserLoggedInWithCookieEvent::class, AuthEventListener::class);
$context->registerEventListener(UserLoggedInEvent::class, AuthEventListener::class);
$context->registerEventListener(BeforeUserLoggedOutEvent::class, AuthEventListener::class);
+ $context->registerEventListener(AnyLoginFailedEvent::class, AuthEventListener::class);
// File events
$context->registerEventListener(BeforePreviewFetchedEvent::class, FileEventListener::class);
+ $context->registerEventListener(VersionRestoredEvent::class, FileEventListener::class);
// Security events
$context->registerEventListener(TwoFactorProviderChallengePassed::class, SecurityEventListener::class);
@@ -167,13 +170,6 @@ class Application extends App implements IBootstrap {
$fileActions = new Files($logger);
$eventDispatcher->addListener(
- BeforeNodeRenamedEvent::class,
- function (BeforeNodeRenamedEvent $event) use ($fileActions): void {
- $fileActions->beforeRename($event);
- }
- );
-
- $eventDispatcher->addListener(
NodeRenamedEvent::class,
function (NodeRenamedEvent $event) use ($fileActions): void {
$fileActions->afterRename($event);
@@ -218,7 +214,6 @@ class Application extends App implements IBootstrap {
private function versionsHooks(IAuditLogger $logger): void {
$versionsActions = new Versions($logger);
- Util::connectHook('\OCP\Versions', 'rollback', $versionsActions, 'rollback');
Util::connectHook('\OCP\Versions', 'delete', $versionsActions, 'delete');
}
diff --git a/apps/admin_audit/lib/Listener/AuthEventListener.php b/apps/admin_audit/lib/Listener/AuthEventListener.php
index 2b31a271d23..88be8555a4d 100644
--- a/apps/admin_audit/lib/Listener/AuthEventListener.php
+++ b/apps/admin_audit/lib/Listener/AuthEventListener.php
@@ -10,6 +10,7 @@ declare(strict_types=1);
namespace OCA\AdminAudit\Listener;
use OCA\AdminAudit\Actions\Action;
+use OCP\Authentication\Events\AnyLoginFailedEvent;
use OCP\EventDispatcher\Event;
use OCP\EventDispatcher\IEventListener;
use OCP\User\Events\BeforeUserLoggedInEvent;
@@ -18,7 +19,7 @@ use OCP\User\Events\UserLoggedInEvent;
use OCP\User\Events\UserLoggedInWithCookieEvent;
/**
- * @template-implements IEventListener<BeforeUserLoggedInEvent|UserLoggedInWithCookieEvent|UserLoggedInEvent|BeforeUserLoggedOutEvent>
+ * @template-implements IEventListener<BeforeUserLoggedInEvent|UserLoggedInWithCookieEvent|UserLoggedInEvent|BeforeUserLoggedOutEvent|AnyLoginFailedEvent>
*/
class AuthEventListener extends Action implements IEventListener {
public function handle(Event $event): void {
@@ -28,6 +29,8 @@ class AuthEventListener extends Action implements IEventListener {
$this->userLoggedIn($event);
} elseif ($event instanceof BeforeUserLoggedOutEvent) {
$this->beforeUserLogout($event);
+ } elseif ($event instanceof AnyLoginFailedEvent) {
+ $this->anyLoginFailed($event);
}
}
@@ -64,4 +67,17 @@ class AuthEventListener extends Action implements IEventListener {
[]
);
}
+
+ private function anyLoginFailed(AnyLoginFailedEvent $event): void {
+ $this->log(
+ 'Login failed: "%s"',
+ [
+ 'loginName' => $event->getLoginName()
+ ],
+ [
+ 'loginName',
+ ],
+ true
+ );
+ }
}
diff --git a/apps/admin_audit/lib/Listener/FileEventListener.php b/apps/admin_audit/lib/Listener/FileEventListener.php
index 4ea3db6aa7d..46a4962123b 100644
--- a/apps/admin_audit/lib/Listener/FileEventListener.php
+++ b/apps/admin_audit/lib/Listener/FileEventListener.php
@@ -10,6 +10,7 @@ declare(strict_types=1);
namespace OCA\AdminAudit\Listener;
use OCA\AdminAudit\Actions\Action;
+use OCA\Files_Versions\Events\VersionRestoredEvent;
use OCP\EventDispatcher\Event;
use OCP\EventDispatcher\IEventListener;
use OCP\Files\InvalidPathException;
@@ -19,12 +20,14 @@ use OCP\Server;
use Psr\Log\LoggerInterface;
/**
- * @template-implements IEventListener<BeforePreviewFetchedEvent>
+ * @template-implements IEventListener<BeforePreviewFetchedEvent|VersionRestoredEvent>
*/
class FileEventListener extends Action implements IEventListener {
public function handle(Event $event): void {
if ($event instanceof BeforePreviewFetchedEvent) {
$this->beforePreviewFetched($event);
+ } elseif ($event instanceof VersionRestoredEvent) {
+ $this->versionRestored($event);
}
}
@@ -40,7 +43,7 @@ class FileEventListener extends Action implements IEventListener {
'height' => $event->getHeight(),
'crop' => $event->isCrop(),
'mode' => $event->getMode(),
- 'path' => mb_substr($file->getInternalPath(), 5)
+ 'path' => $file->getPath(),
];
$this->log(
'Preview accessed: (id: "%s", width: "%s", height: "%s" crop: "%s", mode: "%s", path: "%s")',
@@ -54,4 +57,18 @@ class FileEventListener extends Action implements IEventListener {
return;
}
}
+
+ /**
+ * Logs when a version is restored
+ */
+ private function versionRestored(VersionRestoredEvent $event): void {
+ $version = $event->getVersion();
+ $this->log('Version "%s" of "%s" was restored.',
+ [
+ 'version' => $version->getRevisionId(),
+ 'path' => $version->getVersionPath()
+ ],
+ ['version', 'path']
+ );
+ }
}