From a1654e05ed1dc9eee3e7b7a8d3f73d5ddccea7cf Mon Sep 17 00:00:00 2001 From: Maxence Lange Date: Thu, 16 Apr 2026 12:55:58 -0100 Subject: [PATCH 1/2] fix(teams): use lighter probeCircles() Signed-off-by: Maxence Lange --- lib/Service/CirclesService.php | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/lib/Service/CirclesService.php b/lib/Service/CirclesService.php index e604a78698..96af9c155c 100644 --- a/lib/Service/CirclesService.php +++ b/lib/Service/CirclesService.php @@ -14,6 +14,7 @@ use OCA\Circles\Model\Circle; use OCA\Circles\Model\Member; use OCA\Circles\Model\Probes\CircleProbe; +use OCA\Circles\Model\Probes\DataProbe; use OCP\App\IAppManager; use OCP\Server; use Throwable; @@ -45,7 +46,9 @@ public function getCircle(string $circleId): ?Circle { // Enforce current user condition since we always want the full list of members $circlesManager = Server::get(CirclesManager::class); $circlesManager->startSuperSession(); - return $circlesManager->getCircle($circleId); + $dataProbe = new DataProbe(); + $dataProbe->add(DataProbe::OWNER); + return $circlesManager->probeCircle($circleId, null, $dataProbe); } catch (Throwable $e) { } return null; @@ -64,7 +67,9 @@ public function isUserInCircle(string $circleId, string $userId): bool { $circlesManager = Server::get(CirclesManager::class); $federatedUser = $circlesManager->getFederatedUser($userId, Member::TYPE_USER); $circlesManager->startSession($federatedUser); - $circle = $circlesManager->getCircle($circleId); + $dataProbe = new DataProbe(); + $dataProbe->add(DataProbe::INITIATOR); + $circle = $circlesManager->probeCircle($circleId, null, $dataProbe); $member = $circle->getInitiator(); $isUserInCircle = $member->getLevel() >= Member::LEVEL_MEMBER; @@ -96,7 +101,7 @@ public function getUserCircles(string $userId): array { $probe->mustBeMember(); return array_map(function (Circle $circle) { return $circle->getSingleId(); - }, $circlesManager->getCircles($probe)); + }, $circlesManager->probeCircles($probe)); } catch (Throwable $e) { } return []; From 298f567bd2d9668536ba53329507e7bc668895ea Mon Sep 17 00:00:00 2001 From: Maxence Lange Date: Thu, 16 Apr 2026 15:29:11 -0100 Subject: [PATCH 2/2] adding probeCircle/probeCircles Signed-off-by: Maxence Lange --- tests/stub.phpstub | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/tests/stub.phpstub b/tests/stub.phpstub index d55ced5670..8ca73d9dd8 100644 --- a/tests/stub.phpstub +++ b/tests/stub.phpstub @@ -99,17 +99,27 @@ namespace OCA\Circles\Model\Probes { public function __construct() {} public function mustBeMember(bool $must = true): self {} } + class DataProbe { + public const OWNER = 'd'; + public const INITIATOR = 'h'; + public function __construct() {} + public function add(string $key, array $path = []): self {} + public function mustBeMember(bool $must = true): self {} + } } namespace OCA\Circles { use OCA\Circles\Model\Circle; use OCA\Circles\Model\FederatedUser; use OCA\Circles\Model\Probes\CircleProbe; + use OCA\Circles\Model\Probes\DataProbe; class CirclesManager { public function startSuperSession(): void {} public function startSession(?FederatedUser $federatedUser = null): void {} public function getCircles(?CircleProbe $probe = null): array {} public function getCircle(string $singleId, ?CircleProbe $probe = null): Circle {} + public function probeCircles(?CircleProbe $circleProbe = null, ?DataProbe $dataProbe = null): array {} + public function probeCircle(string $singleId, ?CircleProbe $probe = null, ?DataProbe $dataProbe = null): Circle {} public function getFederatedUser(string $federatedId, int $type = Member::TYPE_SINGLE): FederatedUser {} } }