Browse Source
Merge pull request #32357 from nextcloud/user-delete-remove-wrappers
remove storage wrappers when deleting the user storage
pull/32439/head
Julius Härtl
4 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with
8 additions and
0 deletions
-
lib/private/Authentication/Listeners/UserDeletedFilesCleanupListener.php
|
|
|
@ -26,6 +26,7 @@ declare(strict_types=1); |
|
|
|
namespace OC\Authentication\Listeners; |
|
|
|
|
|
|
|
use OC\Files\Cache\Cache; |
|
|
|
use OC\Files\Storage\Wrapper\Wrapper; |
|
|
|
use OCP\EventDispatcher\Event; |
|
|
|
use OCP\EventDispatcher\IEventListener; |
|
|
|
use OCP\Files\Config\IMountProviderCollection; |
|
|
|
@ -56,6 +57,13 @@ class UserDeletedFilesCleanupListener implements IEventListener { |
|
|
|
if (!$storage) { |
|
|
|
throw new \Exception("User has no home storage"); |
|
|
|
} |
|
|
|
|
|
|
|
// remove all wrappers, so we do the delete directly on the home storage bypassing any wrapper
|
|
|
|
while ($storage->instanceOfStorage(Wrapper::class)) { |
|
|
|
/** @var Wrapper $storage */ |
|
|
|
$storage = $storage->getWrapperStorage(); |
|
|
|
} |
|
|
|
|
|
|
|
$this->homeStorageCache[$event->getUser()->getUID()] = $storage; |
|
|
|
} |
|
|
|
if ($event instanceof UserDeletedEvent) { |
|
|
|
|