diff options
Diffstat (limited to 'apps/files_sharing/lib/Hooks.php')
-rw-r--r-- | apps/files_sharing/lib/Hooks.php | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/apps/files_sharing/lib/Hooks.php b/apps/files_sharing/lib/Hooks.php new file mode 100644 index 00000000000..e90b9f5c23d --- /dev/null +++ b/apps/files_sharing/lib/Hooks.php @@ -0,0 +1,35 @@ +<?php + +/** + * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors + * SPDX-FileCopyrightText: 2016 ownCloud, Inc. + * SPDX-License-Identifier: AGPL-3.0-only + */ +namespace OCA\Files_Sharing; + +use OC\Files\Filesystem; +use OC\Files\View; +use OCP\Server; + +class Hooks { + public static function deleteUser($params) { + $manager = Server::get(External\Manager::class); + + $manager->removeUserShares($params['uid']); + } + + public static function unshareChildren($params) { + $path = Filesystem::getView()->getAbsolutePath($params['path']); + $view = new View('/'); + + // find share mount points within $path and unmount them + $mountManager = Filesystem::getMountManager(); + $mountedShares = $mountManager->findIn($path); + foreach ($mountedShares as $mount) { + if ($mount->getStorage()->instanceOfStorage(ISharedStorage::class)) { + $mountPoint = $mount->getMountPoint(); + $view->unlink($mountPoint); + } + } + } +} |