mirror of
https://github.com/nextcloud/server.git
synced 2026-06-10 09:13:19 -04:00
Merge pull request #59043 from nextcloud/jtr/chore-trashbin-drop-abortOperation-usage
Some checks are pending
CodeQL Advanced / Analyze (actions) (push) Waiting to run
CodeQL Advanced / Analyze (javascript-typescript) (push) Waiting to run
Integration sqlite / changes (push) Waiting to run
Integration sqlite / integration-sqlite (master, 8.4, main, --tags ~@large files_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, capabilities_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, collaboration_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, comments_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, dav_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, federation_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, file_conversions) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, files_reminders) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, filesdrop_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, ldap_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, openldap_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, openldap_numerical_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, remoteapi_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, routing_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, setup_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, sharees_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, sharing_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, theming_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, videoverification_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite-summary (push) Blocked by required conditions
Psalm static code analysis / static-code-analysis (push) Waiting to run
Psalm static code analysis / static-code-analysis-security (push) Waiting to run
Psalm static code analysis / static-code-analysis-ocp (push) Waiting to run
Psalm static code analysis / static-code-analysis-ncu (push) Waiting to run
Psalm static code analysis / static-code-analysis-strict (push) Waiting to run
Some checks are pending
CodeQL Advanced / Analyze (actions) (push) Waiting to run
CodeQL Advanced / Analyze (javascript-typescript) (push) Waiting to run
Integration sqlite / changes (push) Waiting to run
Integration sqlite / integration-sqlite (master, 8.4, main, --tags ~@large files_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, capabilities_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, collaboration_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, comments_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, dav_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, federation_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, file_conversions) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, files_reminders) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, filesdrop_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, ldap_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, openldap_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, openldap_numerical_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, remoteapi_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, routing_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, setup_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, sharees_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, sharing_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, theming_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, videoverification_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite-summary (push) Blocked by required conditions
Psalm static code analysis / static-code-analysis (push) Waiting to run
Psalm static code analysis / static-code-analysis-security (push) Waiting to run
Psalm static code analysis / static-code-analysis-ocp (push) Waiting to run
Psalm static code analysis / static-code-analysis-ncu (push) Waiting to run
Psalm static code analysis / static-code-analysis-strict (push) Waiting to run
chore(trashbin): deprecate abortOperation on BeforeNodeRestoredEvent / switch to AbortedEventException
This commit is contained in:
commit
2ae66ff888
3 changed files with 14 additions and 15 deletions
|
|
@ -8,7 +8,7 @@ declare(strict_types=1);
|
|||
*/
|
||||
namespace OCA\Files_Trashbin\Events;
|
||||
|
||||
use Exception;
|
||||
use OCP\Exceptions\AbortedEventException;
|
||||
use OCP\Files\Events\Node\AbstractNodesEvent;
|
||||
use OCP\Files\Node;
|
||||
|
||||
|
|
@ -25,15 +25,10 @@ class BeforeNodeRestoredEvent extends AbstractNodesEvent {
|
|||
}
|
||||
|
||||
/**
|
||||
* @return never
|
||||
* @since 28.0.0
|
||||
* @deprecated 29.0.0 - use OCP\Exceptions\AbortedEventException instead
|
||||
*/
|
||||
public function abortOperation(?\Throwable $ex = null) {
|
||||
$this->stopPropagation();
|
||||
$this->run = false;
|
||||
if ($ex !== null) {
|
||||
throw $ex;
|
||||
} else {
|
||||
throw new Exception('Operation aborted');
|
||||
}
|
||||
throw new AbortedEventException($ex?->getMessage() ?? 'Operation aborted');
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,10 +14,9 @@ use OCA\Files_Trashbin\Trash\ITrashItem;
|
|||
use OCA\Files_Trashbin\Trash\ITrashManager;
|
||||
use OCP\EventDispatcher\Event;
|
||||
use OCP\EventDispatcher\IEventListener;
|
||||
use OCP\Exceptions\AbortedEventException;
|
||||
use OCP\Files\Folder;
|
||||
use OCP\Files\Node;
|
||||
use OCP\Files\NotFoundException;
|
||||
use OCP\Files\NotPermittedException;
|
||||
use OCP\IUserSession;
|
||||
|
||||
/**
|
||||
|
|
@ -76,7 +75,7 @@ class SyncLivePhotosListener implements IEventListener {
|
|||
unset($this->pendingRestores[$peerFile->getId()]);
|
||||
return;
|
||||
} else {
|
||||
$event->abortOperation(new NotPermittedException('Cannot restore the video part of a live photo'));
|
||||
throw new AbortedEventException('Cannot restore the video part of a live photo');
|
||||
}
|
||||
} else {
|
||||
$user = $this->userSession?->getUser();
|
||||
|
|
@ -94,14 +93,14 @@ class SyncLivePhotosListener implements IEventListener {
|
|||
$trashItem = $this->getTrashItem($trashRoot, $peerFile->getInternalPath());
|
||||
|
||||
if ($trashItem === null) {
|
||||
$event->abortOperation(new NotFoundException("Couldn't find peer file in trashbin"));
|
||||
throw new AbortedEventException('Could not find peer file in trashbin');
|
||||
}
|
||||
|
||||
$this->pendingRestores[$sourceFile->getId()] = true;
|
||||
try {
|
||||
$this->trashManager->restoreItem($trashItem);
|
||||
} catch (\Throwable $ex) {
|
||||
$event->abortOperation($ex);
|
||||
throw new AbortedEventException($ex->getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -29,6 +29,7 @@ use OCP\Config\IUserConfig;
|
|||
use OCP\EventDispatcher\Event;
|
||||
use OCP\EventDispatcher\IEventDispatcher;
|
||||
use OCP\EventDispatcher\IEventListener;
|
||||
use OCP\Exceptions\AbortedEventException;
|
||||
use OCP\Files\Events\Node\BeforeNodeDeletedEvent;
|
||||
use OCP\Files\File;
|
||||
use OCP\Files\Folder;
|
||||
|
|
@ -515,7 +516,11 @@ class Trashbin implements IEventListener {
|
|||
$run = true;
|
||||
$event = new BeforeNodeRestoredEvent($sourceNode, $targetNode, $run);
|
||||
$dispatcher = Server::get(IEventDispatcher::class);
|
||||
$dispatcher->dispatchTyped($event);
|
||||
try {
|
||||
$dispatcher->dispatchTyped($event);
|
||||
} catch (AbortedEventException) {
|
||||
$run = false;
|
||||
}
|
||||
|
||||
if (!$run) {
|
||||
return false;
|
||||
|
|
|
|||
Loading…
Reference in a new issue