diff --git a/apps/files/lib/Sharing/Source/NodeShareSourceType.php b/apps/files/lib/Sharing/Source/NodeShareSourceType.php index ea1a435e0223f..5db7f8a42b8b8 100644 --- a/apps/files/lib/Sharing/Source/NodeShareSourceType.php +++ b/apps/files/lib/Sharing/Source/NodeShareSourceType.php @@ -27,6 +27,7 @@ use OCP\Interaction\InteractionResource; use OCP\Interaction\Resources\NodeResource; use OCP\IURLGenerator; +use OCP\IUser; use OCP\L10N\IFactory; /** @@ -72,8 +73,8 @@ public function getSourceIcon(string $source): ShareIconURL { } #[\Override] - public function getSourceInteractionResource(string $userId, string $source): InteractionResource { - return new NodeResource((int)$source, $userId); + public function getSourceInteractionResource(IUser $user, string $source): InteractionResource { + return new NodeResource((int)$source, $user->getUID()); } #[\Override] diff --git a/lib/private/Sharing/SharingManager.php b/lib/private/Sharing/SharingManager.php index 76593a8f4bc0b..b6c0d465a25c8 100644 --- a/lib/private/Sharing/SharingManager.php +++ b/lib/private/Sharing/SharingManager.php @@ -698,7 +698,7 @@ private function validateInteraction(ShareAccessContext $accessContext, Share $s $action = new ShareAction(null, array_values(array_map(static fn (SharePermission $permission): string => $permission->class, $share->getEnabledPermissions()))); $usersToCheck = []; - if ($share->owner->instance === null && ($ownerUser = $this->userManager->get($share->owner->userId)) !== null) { + if ($share->owner->instance === null && ($ownerUser = $this->userManager->get($share->owner->userId)) instanceof IUser) { $usersToCheck[] = $ownerUser; } @@ -733,7 +733,7 @@ private function validateInteraction(ShareAccessContext $accessContext, Share $s continue; } - $resources[] = $sourceType->getSourceInteractionResource($userToCheck->getUID(), $source->value); + $resources[] = $sourceType->getSourceInteractionResource($userToCheck, $source->value); } $event = new RestrictInteractionEvent($userToCheck->getUID(), $userToCheck, $resources, $action, $receivers); diff --git a/lib/unstable/Sharing/Source/IShareSourceType.php b/lib/unstable/Sharing/Source/IShareSourceType.php index 0cce43c89731d..0cf5569f60b6b 100644 --- a/lib/unstable/Sharing/Source/IShareSourceType.php +++ b/lib/unstable/Sharing/Source/IShareSourceType.php @@ -13,6 +13,7 @@ use NCU\Sharing\Icon\ShareIconURL; use OCP\AppFramework\Attribute\Implementable; use OCP\Interaction\InteractionResource; +use OCP\IUser; use OCP\L10N\IFactory; /** @@ -52,9 +53,8 @@ public function getSourceDisplayName(string $source): ?string; public function getSourceIcon(string $source): null|ShareIconSVG|ShareIconURL; /** - * @param non-empty-string $userId * @param non-empty-string $source * @experimental 35.0.0 */ - public function getSourceInteractionResource(string $userId, string $source): InteractionResource; + public function getSourceInteractionResource(IUser $user, string $source): InteractionResource; } diff --git a/tests/lib/Sharing/TestShareSourceType1.php b/tests/lib/Sharing/TestShareSourceType1.php index e61bd869db945..904f8e63bfd11 100644 --- a/tests/lib/Sharing/TestShareSourceType1.php +++ b/tests/lib/Sharing/TestShareSourceType1.php @@ -13,6 +13,7 @@ use NCU\Sharing\Icon\ShareIconURL; use NCU\Sharing\Source\IShareSourceType; use OCP\Interaction\InteractionResource; +use OCP\IUser; use OCP\L10N\IFactory; class TestShareSourceType1 implements IShareSourceType { @@ -45,7 +46,7 @@ public function getSourceIcon(string $source): null|ShareIconSVG|ShareIconURL { } #[\Override] - public function getSourceInteractionResource(string $userId, string $source): InteractionResource { + public function getSourceInteractionResource(IUser $user, string $source): InteractionResource { return new TestInteractionResource($source); } }