From b573d8a58bd1c77265f42ec4806060bd8fa20e37 Mon Sep 17 00:00:00 2001 From: Carl Schwan Date: Sun, 28 Sep 2025 11:59:08 +0200 Subject: [PATCH] fix(sharing): Adapt Hooks to new API Signed-off-by: Carl Schwan --- apps/files_sharing/lib/Hooks.php | 14 +++-- .../tests/ExpireSharesJobTest.php | 61 ++++++++----------- 2 files changed, 37 insertions(+), 38 deletions(-) diff --git a/apps/files_sharing/lib/Hooks.php b/apps/files_sharing/lib/Hooks.php index e90b9f5c23d..9f00afa1079 100644 --- a/apps/files_sharing/lib/Hooks.php +++ b/apps/files_sharing/lib/Hooks.php @@ -9,16 +9,22 @@ namespace OCA\Files_Sharing; use OC\Files\Filesystem; use OC\Files\View; +use OCP\IUserManager; use OCP\Server; class Hooks { - public static function deleteUser($params) { - $manager = Server::get(External\Manager::class); + public static function deleteUser(array $params): void { + $userManager = Server::get(IUserManager::class); + $user = $userManager->get($params['uid']); + if ($user === null) { + return; + } - $manager->removeUserShares($params['uid']); + $manager = Server::get(External\Manager::class); + $manager->removeUserShares($user); } - public static function unshareChildren($params) { + public static function unshareChildren(array $params): void { $path = Filesystem::getView()->getAbsolutePath($params['path']); $view = new View('/'); diff --git a/apps/files_sharing/tests/ExpireSharesJobTest.php b/apps/files_sharing/tests/ExpireSharesJobTest.php index 00defc040bb..adb6f6d2b81 100644 --- a/apps/files_sharing/tests/ExpireSharesJobTest.php +++ b/apps/files_sharing/tests/ExpireSharesJobTest.php @@ -11,11 +11,14 @@ use OC\SystemConfig; use OCA\Files_Sharing\ExpireSharesJob; use OCP\AppFramework\Utility\ITimeFactory; use OCP\Constants; +use OCP\Files\IRootFolder; use OCP\IDBConnection; +use OCP\IUser; use OCP\IUserManager; use OCP\Server; use OCP\Share\IManager; use OCP\Share\IShare; +use PHPUnit\Framework\Attributes\DataProvider; /** * Class ExpireSharesJobTest @@ -26,32 +29,30 @@ use OCP\Share\IShare; #[\PHPUnit\Framework\Attributes\Group('DB')] class ExpireSharesJobTest extends \Test\TestCase { - /** @var ExpireSharesJob */ - private $job; + private ExpireSharesJob $job; - /** @var IDBConnection */ - private $connection; + private IDBConnection $connection; + private IRootFolder $rootFolder; - /** @var string */ - private $user1; + private IUser $user1; - /** @var string */ - private $user2; + private IUser $user2; protected function setUp(): void { parent::setUp(); $this->connection = Server::get(IDBConnection::class); + $this->rootFolder = Server::get(IRootFolder::class); // clear occasional leftover shares from other tests $qb = $this->connection->getQueryBuilder(); $qb->delete('share')->executeStatement(); - $this->user1 = $this->getUniqueID('user1_'); - $this->user2 = $this->getUniqueID('user2_'); + $user1 = $this->getUniqueID('user1_'); + $user2 = $this->getUniqueID('user2_'); $userManager = Server::get(IUserManager::class); - $userManager->createUser($this->user1, 'longrandompassword'); - $userManager->createUser($this->user2, 'longrandompassword'); + $this->user1 = $userManager->createUser($user1, 'longrandompassword'); + $this->user2 = $userManager->createUser($user2, 'longrandompassword'); \OC::registerShareHooks(Server::get(SystemConfig::class)); @@ -62,22 +63,15 @@ class ExpireSharesJobTest extends \Test\TestCase { $qb = $this->connection->getQueryBuilder(); $qb->delete('share')->executeStatement(); - $userManager = Server::get(IUserManager::class); - $user1 = $userManager->get($this->user1); - if ($user1) { - $user1->delete(); - } - $user2 = $userManager->get($this->user2); - if ($user2) { - $user2->delete(); - } + $this->user1->delete(); + $this->user2->delete(); $this->logout(); parent::tearDown(); } - private function getShares() { + private function getShares(): array { $shares = []; $qb = $this->connection->getQueryBuilder(); @@ -108,26 +102,25 @@ class ExpireSharesJobTest extends \Test\TestCase { } /** - * * @param bool addExpiration Should we add an expire date * @param string $interval The dateInterval * @param bool $addInterval If true add to the current time if false subtract * @param bool $shouldExpire Should this share be expired */ - #[\PHPUnit\Framework\Attributes\DataProvider('dataExpireLinkShare')] - public function testExpireLinkShare($addExpiration, $interval, $addInterval, $shouldExpire): void { - $this->loginAsUser($this->user1); + #[DataProvider('dataExpireLinkShare')] + public function testExpireLinkShare(bool $addExpiration, string $interval, bool $addInterval, bool $shouldExpire): void { + $this->loginAsUser($this->user1->getUID()); - $user1Folder = \OC::$server->getUserFolder($this->user1); + $user1Folder = $this->rootFolder->getUserFolder($this->user1->getUID()); $testFolder = $user1Folder->newFolder('test'); - $shareManager = Server::get(\OCP\Share\IManager::class); + $shareManager = Server::get(IManager::class); $share = $shareManager->newShare(); $share->setNode($testFolder) ->setShareType(IShare::TYPE_LINK) ->setPermissions(Constants::PERMISSION_READ) - ->setSharedBy($this->user1); + ->setSharedBy($this->user1->getUID()); $shareManager->createShare($share); @@ -173,19 +166,19 @@ class ExpireSharesJobTest extends \Test\TestCase { } public function testDoNotExpireOtherShares(): void { - $this->loginAsUser($this->user1); + $this->loginAsUser($this->user1->getUID()); - $user1Folder = \OC::$server->getUserFolder($this->user1); + $user1Folder = $this->rootFolder->getUserFolder($this->user1->getUID()); $testFolder = $user1Folder->newFolder('test'); - $shareManager = Server::get(\OCP\Share\IManager::class); + $shareManager = Server::get(IManager::class); $share = $shareManager->newShare(); $share->setNode($testFolder) ->setShareType(IShare::TYPE_USER) ->setPermissions(Constants::PERMISSION_READ) - ->setSharedBy($this->user1) - ->setSharedWith($this->user2); + ->setSharedBy($this->user1->getUID()) + ->setSharedWith($this->user2->getUID()); $shareManager->createShare($share);