diff options
Diffstat (limited to 'apps/admin_audit/lib/AuditLogger.php')
-rw-r--r-- | apps/admin_audit/lib/AuditLogger.php | 209 |
1 files changed, 0 insertions, 209 deletions
diff --git a/apps/admin_audit/lib/AuditLogger.php b/apps/admin_audit/lib/AuditLogger.php deleted file mode 100644 index 0dd3e3b347f..00000000000 --- a/apps/admin_audit/lib/AuditLogger.php +++ /dev/null @@ -1,209 +0,0 @@ -<?php -/** - * @copyright Copyright (c) 2016 Bjoern Schiessle <bjoern@schiessle.org> - * @copyright Copyright (c) 2017 Lukas Reschke <lukas@statuscode.ch> - * - * @author Bjoern Schiessle <bjoern@schiessle.org> - * @author Lukas Reschke <lukas@statuscode.ch> - * @author Roger Szabo <roger.szabo@web.de> - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * - */ - -namespace OCA\AdminAudit; - -use OC\Files\Filesystem; -use OC\Files\Node\File; -use OCA\AdminAudit\Actions\Auth; -use OCA\AdminAudit\Actions\Files; -use OCA\AdminAudit\Actions\GroupManagement; -use OCA\AdminAudit\Actions\Sharing; -use OCA\AdminAudit\Actions\Trashbin; -use OCA\AdminAudit\Actions\UserManagement; -use OCA\AdminAudit\Actions\Versions; -use OCP\IGroupManager; -use OCP\ILogger; -use OCP\IPreview; -use OCP\IUserSession; -use OCP\Util; -use Symfony\Component\EventDispatcher\EventDispatcherInterface; -use Symfony\Component\EventDispatcher\GenericEvent; - -class AuditLogger { - /** @var ILogger */ - private $logger; - /** @var IUserSession */ - private $userSession; - /** @var IGroupManager */ - private $groupManager; - - /** - * AuditLogger constructor. - * - * @param ILogger $logger - * @param IUserSession $userSession - * @param IGroupManager $groupManager - * @param EventDispatcherInterface $eventDispatcher - */ - public function __construct(ILogger $logger, - IUserSession $userSession, - IGroupManager $groupManager, - EventDispatcherInterface $eventDispatcher) { - $this->logger = $logger; - $this->userSession = $userSession; - $this->groupManager = $groupManager; - $this->eventDispatcher = $eventDispatcher; - } - - /** - * Register hooks in order to log them - */ - public function registerHooks() { - $this->userManagementHooks(); - $this->groupHooks(); - $this->sharingHooks(); - $this->authHooks(); - $this->fileHooks(); - $this->trashbinHooks(); - $this->versionsHooks(); - } - - /** - * Connect to user management hooks - */ - private function userManagementHooks() { - $userActions = new UserManagement($this->logger); - - Util::connectHook('OC_User', 'post_createUser', $userActions, 'create'); - Util::connectHook('OC_User', 'post_deleteUser', $userActions, 'delete'); - Util::connectHook('OC_User', 'changeUser', $userActions, 'change'); - $this->userSession->listen('\OC\User', 'postSetPassword', [$userActions, 'setPassword']); - } - - private function groupHooks() { - $groupActions = new GroupManagement($this->logger); - $this->groupManager->listen('\OC\Group', 'postRemoveUser', [$groupActions, 'removeUser']); - $this->groupManager->listen('\OC\Group', 'postAddUser', [$groupActions, 'addUser']); - $this->groupManager->listen('\OC\Group', 'postDelete', [$groupActions, 'deleteGroup']); - $this->groupManager->listen('\OC\Group', 'postCreate', [$groupActions, 'createGroup']); - } - - /** - * connect to sharing events - */ - private function sharingHooks() { - $shareActions = new Sharing($this->logger); - - Util::connectHook('OCP\Share', 'post_shared', $shareActions, 'shared'); - Util::connectHook('OCP\Share', 'post_unshare', $shareActions, 'unshare'); - Util::connectHook('OCP\Share', 'post_update_permissions', $shareActions, 'updatePermissions'); - Util::connectHook('OCP\Share', 'post_update_password', $shareActions, 'updatePassword'); - Util::connectHook('OCP\Share', 'post_set_expiration_date', $shareActions, 'updateExpirationDate'); - Util::connectHook('OCP\Share', 'share_link_access', $shareActions, 'shareAccessed'); - } - - /** - * connect to authentication event and related actions - */ - private function authHooks() { - $authActions = new Auth($this->logger); - - Util::connectHook('OC_User', 'pre_login', $authActions, 'loginAttempt'); - Util::connectHook('OC_User', 'post_login', $authActions, 'loginSuccessful'); - Util::connectHook('OC_User', 'logout', $authActions, 'logout'); - } - - /** - * Connect to file hooks - */ - private function fileHooks() { - $fileActions = new Files($this->logger); - $this->eventDispatcher->addListener( - IPreview::EVENT, - function(GenericEvent $event) use ($fileActions) { - /** @var File $file */ - $file = $event->getSubject(); - $fileActions->preview([ - 'path' => substr($file->getInternalPath(), 5), - 'width' => $event->getArguments()['width'], - 'height' => $event->getArguments()['height'], - 'crop' => $event->getArguments()['crop'], - 'mode' => $event->getArguments()['mode'] - ]); - } - ); - - Util::connectHook( - Filesystem::CLASSNAME, - Filesystem::signal_post_rename, - $fileActions, - 'rename' - ); - Util::connectHook( - Filesystem::CLASSNAME, - Filesystem::signal_post_create, - $fileActions, - 'create' - ); - Util::connectHook( - Filesystem::CLASSNAME, - Filesystem::signal_post_copy, - $fileActions, - 'copy' - ); - Util::connectHook( - Filesystem::CLASSNAME, - Filesystem::signal_post_write, - $fileActions, - 'write' - ); - Util::connectHook( - Filesystem::CLASSNAME, - Filesystem::signal_post_update, - $fileActions, - 'update' - ); - Util::connectHook( - Filesystem::CLASSNAME, - Filesystem::signal_read, - $fileActions, - 'read' - ); - Util::connectHook( - Filesystem::CLASSNAME, - Filesystem::signal_delete, - $fileActions, - 'delete' - ); - } - - public function versionsHooks() { - $versionsActions = new Versions($this->logger); - Util::connectHook('\OCP\Versions', 'rollback', $versionsActions, 'rollback'); - Util::connectHook('\OCP\Versions', 'delete',$versionsActions, 'delete'); - } - - /** - * Connect to trash bin hooks - */ - private function trashbinHooks() { - $trashActions = new Trashbin($this->logger); - Util::connectHook('\OCP\Trashbin', 'preDelete', $trashActions, 'delete'); - Util::connectHook('\OCA\Files_Trashbin\Trashbin', 'post_restore', $trashActions, 'restore'); - } - -} |