diff options
Diffstat (limited to 'apps/files_trashbin/lib/Events/BeforeNodeRestoredEvent.php')
-rw-r--r-- | apps/files_trashbin/lib/Events/BeforeNodeRestoredEvent.php | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/apps/files_trashbin/lib/Events/BeforeNodeRestoredEvent.php b/apps/files_trashbin/lib/Events/BeforeNodeRestoredEvent.php new file mode 100644 index 00000000000..0bc6b37c35b --- /dev/null +++ b/apps/files_trashbin/lib/Events/BeforeNodeRestoredEvent.php @@ -0,0 +1,39 @@ +<?php + +declare(strict_types=1); + +/** + * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later + */ +namespace OCA\Files_Trashbin\Events; + +use Exception; +use OCP\Files\Events\Node\AbstractNodesEvent; +use OCP\Files\Node; + +/** + * @since 28.0.0 + */ +class BeforeNodeRestoredEvent extends AbstractNodesEvent { + public function __construct( + Node $source, + Node $target, + private bool &$run, + ) { + parent::__construct($source, $target); + } + + /** + * @return never + */ + public function abortOperation(?\Throwable $ex = null) { + $this->stopPropagation(); + $this->run = false; + if ($ex !== null) { + throw $ex; + } else { + throw new Exception('Operation aborted'); + } + } +} |